<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>boston_housing</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;<a class="anchor-link" href="#&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#182;</a></h1><h2 id="&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;<a class="anchor-link" href="#&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#182;</a></h2><h2 id="&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#39033;&#30446; 1: &#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;<a class="anchor-link" href="#&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#182;</a></h2><p>欢迎来到机器学习的预测波士顿房价项目！在此文件中，有些示例代码已经提供给你，但你还需要实现更多的功能来让项目成功运行。除非有明确要求，你无须修改任何已给出的代码。以<strong>编程练习</strong>开始的标题表示接下来的内容中有需要你必须实现的功能。每一部分都会有详细的指导，需要实现的部分也会在注释中以<strong>TODO</strong>标出。请仔细阅读所有的提示！</p>
<p>除了实现代码外，你还<strong>必须</strong>回答一些与项目和实现有关的问题。每一个需要你回答的问题都会以<strong>'问题 X'</strong>为标题。请仔细阅读每个问题，并且在问题后的<strong>'回答'</strong>文字框中写出完整的答案。你的项目将会根据你对问题的回答和撰写代码所实现的功能来进行评分。</p>
<blockquote><p><strong>提示：</strong>Code 和 Markdown 区域可通过 <strong>Shift + Enter</strong> 快捷键运行。此外，Markdown可以通过双击进入编辑模式。</p>
</blockquote>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#31532;&#19968;&#27493;. &#23548;&#20837;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#182;</a></h2><p>在这个项目中，你将利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型，并对模型的性能和预测能力进行测试。通过该数据训练后的好的模型可以被用来对房屋做特定预测---尤其是对房屋的价值。对于房地产经纪等人的日常工作来说，这样的预测模型被证明非常有价值。</p>
<p>此项目的数据集来自<a href="https://archive.ics.uci.edu/ml/datasets.html">UCI机器学习知识库(数据集已下线)</a>。波士顿房屋这些数据于1978年开始统计，共506个数据点，涵盖了麻省波士顿不同郊区房屋14种特征的信息。本项目对原始数据集做了以下处理：</p>
<ul>
<li>有16个<code>'MEDV'</code> 值为50.0的数据点被移除。 这很可能是由于这些数据点包含<strong>遗失</strong>或<strong>看不到的值</strong>。</li>
<li>有1个数据点的 <code>'RM'</code> 值为8.78. 这是一个异常值，已经被移除。</li>
<li>对于本项目，房屋的<code>'RM'</code>， <code>'LSTAT'</code>，<code>'PTRATIO'</code>以及<code>'MEDV'</code>特征是必要的，其余不相关特征已经被移除。</li>
<li><code>'MEDV'</code>特征的值已经过必要的数学转换，可以反映35年来市场的通货膨胀效应。</li>
</ul>
<p>运行下面区域的代码以载入波士顿房屋数据集，以及一些此项目所需的 Python 库。如果成功返回数据集的大小，表示数据集已载入成功。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Import libraries necessary for this project</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">ShuffleSplit</span>

<span class="c1"># Import supplementary visualizations code visuals.py</span>
<span class="kn">import</span> <span class="nn">visuals</span> <span class="k">as</span> <span class="nn">vs</span>

<span class="c1"># Pretty display for notebooks</span>
<span class="o">%</span><span class="k">matplotlib</span> inline

<span class="c1"># Load the Boston housing dataset</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;housing.csv&#39;</span><span class="p">)</span>
<span class="n">prices</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;MEDV&#39;</span><span class="p">]</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="s1">&#39;MEDV&#39;</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
    
<span class="c1"># Success</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Boston housing dataset has </span><span class="si">{}</span><span class="s2"> data points with </span><span class="si">{}</span><span class="s2"> variables each.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">*</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Boston housing dataset has 489 data points with 4 variables each.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#31532;&#20108;&#27493;. &#20998;&#26512;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#182;</a></h2><p>在项目的第一个部分，你会对波士顿房地产数据进行初步的观察并给出你的分析。通过对数据的探索来熟悉数据可以让你更好地理解和解释你的结果。</p>
<p>由于这个项目的最终目标是建立一个预测房屋价值的模型，我们需要将数据集分为<strong>特征(features)</strong>和<strong>目标变量(target variable)</strong>。</p>
<ul>
<li><strong>特征</strong> <code>'RM'</code>， <code>'LSTAT'</code>，和 <code>'PTRATIO'</code>，给我们提供了每个数据点的数量相关的信息。</li>
<li><strong>目标变量</strong>：<code>'MEDV'</code>，是我们希望预测的变量。</li>
</ul>
<p>他们分别被存在 <code>features</code> 和 <code>prices</code> 两个变量名中。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#32534;&#31243;&#32451;&#20064; 1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#182;</a></h3><p>你的第一个编程练习是计算有关波士顿房价的描述统计数据。我们已为你导入了 <code>NumPy</code>，你需要使用这个库来执行必要的计算。这些统计数据对于分析模型的预测结果非常重要的。
在下面的代码中，你要做的是：</p>
<ul>
<li>计算 <code>prices</code> 中的 <code>'MEDV'</code> 的最小值、最大值、均值、中值和标准差；</li>
<li>将运算结果储存在相应的变量中。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Minimum price of the data</span>
<span class="n">minimum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span><span class="o">.</span><span class="n">min</span><span class="p">()</span>

<span class="c1"># TODO: Maximum price of the data</span>
<span class="n">maximum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>

<span class="c1"># TODO: Mean price of the data</span>
<span class="n">mean_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span>

<span class="c1"># TODO: Median price of the data</span>
<span class="n">median_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">median</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">prices</span><span class="p">))</span>

<span class="c1"># TODO: Standard deviation of prices of the data</span>
<span class="n">std_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span><span class="o">.</span><span class="n">std</span><span class="p">()</span>

<span class="c1"># Show the calculated statistics</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Statistics for Boston housing dataset:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Minimum price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">minimum_price</span><span class="p">))</span> 
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Maximum price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">maximum_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Mean price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">mean_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Median price $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">median_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Standard deviation of prices: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">std_price</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Statistics for Boston housing dataset:

Minimum price: $105000.00
Maximum price: $1024800.00
Mean price: $454342.94
Median price $438900.00
Standard deviation of prices: $165171.13
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#38382;&#39064; 1 - &#29305;&#24449;&#35266;&#23519;<a class="anchor-link" href="#&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#182;</a></h3><p>如前文所述，本项目中我们关注的是其中三个值:<code>'RM'</code>、<code>'LSTAT'</code> 和<code>'PTRATIO'</code>，对每一个数据点:</p>
<ul>
<li><code>'RM'</code> 是该地区中每个房屋的平均房间数量；</li>
<li><code>'LSTAT'</code> 是指该地区有多少百分比的业主属于是低收入阶层（有工作但收入微薄）；</li>
<li><code>'PTRATIO'</code> 是该地区的中学和小学里，学生和老师的数目比（<code>学生/老师</code>）。</li>
</ul>
<p><em>凭直觉，上述三个特征中对每一个来说，你认为增大该特征的数值，<code>'MEDV'</code>的值会是<strong>增大</strong>还是<strong>减小</strong>呢？每一个答案都需要你给出理由。</em></p>
<p><strong>提示：</strong>你预期一个<code>'RM'</code> 值是6的房屋跟<code>'RM'</code> 值是7的房屋相比，价值更高还是更低呢？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#38382;&#39064; 1 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#182;</a></h3><p>其他因素相同的情况下，当然是房屋房间数越多，房价越贵</p>
<p>如果地区低收入阶层的业主比较多，说明该地区欠发达，所以房价比较低</p>
<p>如果该地区学生与老师数目比比较高，则一个学生对应的老师数比较低，说明该地区教育不发达，房价会比较低。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19977;&#27493;.-&#24314;&#31435;&#27169;&#22411;">&#31532;&#19977;&#27493;. &#24314;&#31435;&#27169;&#22411;<a class="anchor-link" href="#&#31532;&#19977;&#27493;.-&#24314;&#31435;&#27169;&#22411;">&#182;</a></h2><p>在项目的第三步中，你需要了解必要的工具和技巧来让你的模型进行预测。用这些工具和技巧对每一个模型的表现做精确的衡量可以极大地增强你预测的信心。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#182;</a></h3><p>如果不能对模型的训练和测试的表现进行量化地评估，我们就很难衡量模型的好坏。通常我们会定义一些衡量标准，这些标准可以通过对某些误差或者拟合程度的计算来得到。在这个项目中，你将通过运算<a href="https://en.wikipedia.org/wiki/Coefficient_of_determination">决定系数</a> $R^2$ 来量化模型的表现。模型的决定系数是回归分析中十分常用的统计信息，经常被当作衡量模型预测能力好坏的标准。</p>
<p>$R^2$ 的数值范围从0至1，表示<strong>目标变量</strong>的预测值和实际值之间的相关程度平方的百分比。一个模型的 $R^2$ 值为0还不如直接用<strong>平均值</strong>来预测效果好；而一个 $R^2$ 值为1的模型则可以对目标变量进行完美的预测。从0至1之间的数值，则表示该模型中目标变量中有百分之多少能够用<strong>特征</strong>来解释。模型也可能出现负值的 $R^2$，这种情况下模型所做预测有时会比直接计算目标变量的平均值差很多。</p>
<p>在下方代码的 <code>performance_metric</code> 函数中，你要实现：</p>
<ul>
<li>使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html"><code>r2_score</code></a> 来计算 <code>y_true</code> 和 <code>y_predict</code> 的 $R^2$ 值，作为对其表现的评判。</li>
<li>将他们的表现评分储存到 <code>score</code> 变量中。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;r2_score&#39;</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">r2_score</span>
<span class="k">def</span> <span class="nf">performance_metric</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; Calculates and returns the performance score between </span>
<span class="sd">        true and predicted values based on the metric chosen. &quot;&quot;&quot;</span>
    
    <span class="c1"># TODO: Calculate the performance score between &#39;y_true&#39; and &#39;y_predict&#39;</span>
    <span class="n">score</span><span class="o">=</span><span class="n">r2_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span><span class="n">y_predict</span><span class="p">)</span>
    
    <span class="c1"># Return the score</span>
    <span class="k">return</span> <span class="n">score</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#25311;&#21512;&#31243;&#24230;">&#38382;&#39064; 2 - &#25311;&#21512;&#31243;&#24230;<a class="anchor-link" href="#&#38382;&#39064;-2---&#25311;&#21512;&#31243;&#24230;">&#182;</a></h3><p>假设一个数据集有五个数据且一个模型做出下列目标变量的预测：</p>
<table>
<thead><tr>
<th style="text-align:center">真实数值</th>
<th style="text-align:center">预测数值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">3.0</td>
<td style="text-align:center">2.5</td>
</tr>
<tr>
<td style="text-align:center">-0.5</td>
<td style="text-align:center">0.0</td>
</tr>
<tr>
<td style="text-align:center">2.0</td>
<td style="text-align:center">2.1</td>
</tr>
<tr>
<td style="text-align:center">7.0</td>
<td style="text-align:center">7.8</td>
</tr>
<tr>
<td style="text-align:center">4.2</td>
<td style="text-align:center">5.3</td>
</tr>
</tbody>
</table>
<p><em>你觉得这个模型已成功地描述了目标变量的变化吗？如果成功，请解释为什么，如果没有，也请给出原因。</em></p>
<p><strong>提示1</strong>：运行下方的代码，使用 <code>performance_metric</code> 函数来计算 <code>y_true</code> 和 <code>y_predict</code> 的决定系数。</p>
<p><strong>提示2</strong>：$R^2$ 分数是指可以从自变量中预测的因变量的方差比例。 换一种说法：</p>
<ul>
<li>$R^2$ 为0意味着因变量不能从自变量预测。</li>
<li>$R^2$ 为1意味着可以从自变量预测因变量。</li>
<li>$R^2$ 在0到1之间表示因变量可预测的程度。</li>
<li>$R^2$ 为0.40意味着 Y 中40％的方差可以从 X 预测。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Calculate the performance of this model</span>
<span class="n">score</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mf">4.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">2.1</span><span class="p">,</span> <span class="mf">7.8</span><span class="p">,</span> <span class="mf">5.3</span><span class="p">])</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Model has a coefficient of determination, R^2, of </span><span class="si">{:.3f}</span><span class="s2">.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">score</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Model has a coefficient of determination, R^2, of 0.923.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#22238;&#31572;:">&#38382;&#39064; 2 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-2---&#22238;&#31572;:">&#182;</a></h3><p>可以，决定系数比较大</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-3:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#32534;&#31243;&#32451;&#20064; 3: &#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-3:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#182;</a></h3><p>接下来，你需要把波士顿房屋数据集分成训练和测试两个子集。通常在这个过程中，数据也会被重排列，以消除数据集中由于顺序而产生的偏差。
在下面的代码中，你需要</p>
<ul>
<li>使用 <code>sklearn.model_selection</code> 中的 <code>train_test_split</code>， 将 <code>features</code> 和 <code>prices</code> 的数据都分成用于训练的数据子集和用于测试的数据子集。<ul>
<li>分割比例为：80%的数据用于训练，20%用于测试；</li>
<li>选定一个数值以设定 <code>train_test_split</code> 中的 <code>random_state</code> ，这会确保结果的一致性；</li>
</ul>
</li>
<li>将分割后的训练集与测试集分配给 <code>X_train</code>, <code>X_test</code>, <code>y_train</code> 和 <code>y_test</code>。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;train_test_split&#39;</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">train_test_split</span>
<span class="c1"># TODO: Shuffle and split the data into training and testing subsets</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">,</span> <span class="n">test_size</span> <span class="o">=</span> <span class="mf">0.2</span><span class="p">,</span><span class="n">random_state</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span>

<span class="c1"># Success</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Training and testing split was successful.&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Training and testing split was successful.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#35757;&#32451;&#21450;&#27979;&#35797;">&#38382;&#39064; 3 - &#35757;&#32451;&#21450;&#27979;&#35797;<a class="anchor-link" href="#&#38382;&#39064;-3---&#35757;&#32451;&#21450;&#27979;&#35797;">&#182;</a></h3><p><em>将数据集按一定比例分为训练用的数据集和测试用的数据集对学习算法有什么好处？</em></p>
<p><em>如果用模型已经见过的数据，例如部分训练集数据进行测试，又有什么坏处？</em></p>
<p><strong>提示：</strong> 如果没有数据来对模型进行测试，会出现什么问题？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#22238;&#31572;:">&#38382;&#39064; 3 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-3---&#22238;&#31572;:">&#182;</a></h3><p>分为数据集和测试集是为了让模型尽可能学习到更普遍的规律，防止模型仅仅学到了数据集的特点和规律，导致其泛化性能差</p>
<p>使用部分测试集进行测试会产生模型适用性强的假象，当使用其他数据后表现能力会变差。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#31532;&#22235;&#27493;. &#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;<a class="anchor-link" href="#&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#182;</a></h2><p>在项目的第四步，我们来看一下不同参数下，模型在训练集和验证集上的表现。这里，我们专注于一个特定的算法（带剪枝的决策树，但这并不是这个项目的重点），和这个算法的一个参数 <code>'max_depth'</code>。用全部训练集训练，选择不同<code>'max_depth'</code> 参数，观察这一参数的变化如何影响模型的表现。画出模型的表现来对于分析过程十分有益。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#23398;&#20064;&#26354;&#32447;">&#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><p>下方区域内的代码会输出四幅图像，它们是一个决策树模型在不同最大深度下的表现。每一条曲线都直观得显示了随着训练数据量的增加，模型学习曲线的在训练集评分和验证集评分的变化，评分使用决定系数 $R^2$。曲线的阴影区域代表的是该曲线的不确定性（用标准差衡量）。</p>
<p>运行下方区域中的代码，并利用输出的图形回答下面的问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Produce learning curves for varying training set sizes and maximum depths</span>
<span class="n">vs</span><span class="o">.</span><span class="n">ModelLearning</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
PXr/f//73ynechUUFPiNMfTu3TsMkJKSYtwAaf369YHjjz9+yLBhw0YOHz585HvvvZcGcMcdd+QM
HTp01NChQ0fde++9ves7v5deeqnbgQceOGLkyJH7n3baafsWFRW1ekzT+bPbeU2YACeeCC+/bAcr
PPpo+49RKaVUx+f3Q//+ts+R21wuI8PW+OTmwi23wNVX22x4zz4L06bZJnlTpsBpp9lWBA8/bNOH
5+bCjTfaJBBg9xFfcxSJ2OZ4u3bZRBJga7DS020GvbQ0W+OUnFxTs6WUUgBTpgxgxYrUepcvW5ZG
VVXtJk0VFT6uu24wzzyTnXCb0aPLeOaZDS0pzpo1a0K///3v1xx99NFlAI888sjGnJycSHV1NRMm
TBi+dOnSnePGjavwblNSUuI/9thji+fMmZM3derU/o899ljWfffdlx+/b2MMy5cv/2r+/PndZ82a
1ffEE0/83+zZs3v37t27euHChd998sknKUceeWSd6v1+/fqFjz766KIBAwaMOfzww4tOP/30wqlT
pxb4/X6mTZs26Pjjjy+67bbbtlVXV1NcXOx777330l5++eVeX3zxxcrq6moZN27c/ieeeGJxampq
1Ht+eXl5gQceeCD3o48++iYjIyN6yy239Lnvvvt6z549u07Zd0fXuuuLwM9/bv/pPfcc5LfqtVJK
KbUnpKbCiBEwdCiUl9saILeGJyMDpk6tSfIAMGOGbWI9YwZs2mTX3bQJ7rgDXnut/uP4/bbpXffu
trapZ0+7/3DYBlqrVtlMep99BitW1ARupaXaz0kp1bD4AKmx+btpwIABlW6ABPDMM89kjhw5cv9R
o0aNXL16dei///1vSvw2oVAoet555xUBjBs3rmzt2rUJB6M799xzdwEcfvjhZRs3bgwCfPLJJ+kX
XXRRAcDEiRPLhwwZUp5o21dffXXtG2+88c24cePKHn744T4XXnjhIIBFixZl3HTTTdsBkpKSyMzM
jH7wwQfpkydP3pmenm569uwZPeWUU3a999576fHn995776V/++23oUMPPXTEiBEjRr7yyiu91q1b
12A/q5boetUshx8Oxx9vf2k8/3w7CGEo1N6lUkop1Rwi0KuXrdHJy7M/eqWk2Alsk7rvfx/OPNP2
Rb36ahvceFVUwK9+ZfurNnUgWp+vpvbIZYzt37Rjhy2H2981Obmm1ikUspP2c1Jq79BYjU/fvgew
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
bk065phjhvXs2TO8aNGib/r163fAkiVLvsrNzQ3feeedOfPnz89yyrlt5syZW1etWhU85ZRThh52
2GElS5YsSc/JyalauHDht+np6bXaxG7dujVp0KBBVe7rww47rBxsoHP11Vf3f//997uLiLnsssu2
33777Vv/+te/ZsyYMWNAJBJh7NixZc8+++y6lJQU069fvwPOOOOMgg8++KDb9ddfn3/EEUeUTZ8+
fWBBQUEgFApFn3766XUHHXRQEzPd7C1BEtib7GWX2V+Ffv/7mnbOTWlWoJRSSnVlIjU1FU3VlMDK
G1yVltZuWhhv+vTaqcnBBgk33WRrStqj9qOhwG3+fFvW8nLbTLC83L5ONHnXiX8sLk68j4auVSKV
lXD33XZyBxb2NlNMNLkDD7vru9t453ubBiaqdfNu89ln8NRTNcHb+vW2L/jixXDEETXNTt0p/nWi
ed7XTVnfO0WjdgDopmaAbIYpf50yYMXWFfWmS16WvyytKlpV60NbEa7wXffmdYOf+c8z2Ym2Gd17
dNkzZz6zob595uTkRMaOHVv6yiuvdL/44ot3/eEPf8icPHnyTp/PR2pqavT111//NjMzM7p58+bA
+PHjR1x44YW7fPX0jXvwwQd7p6SkRFevXv3lokWLUo444oiR7rKHH344LycnJxIOhzn88MOHL1q0
KOWOO+7Y+vjjj+d88MEH3+Tm5oa9+/roo49Sn3/++V5Lly79yhjDuHHj9j/++OOLs7KyIuvXrw89
99xzqw8//PB1p5566r7PPvtsz6uvvrpWkHjNNddsOfXUU4cddNBBpccff3zhNddcsyMrKyvy0EMP
Za9fvz64cuXKL5OSktiyZYu/rKxMfvzjH+/z1ltvrRozZkzlWWedNfiBBx7Injlz5laAXr16hVeu
XPkVwMSJE4c9+eST6w444IDK9957L+2qq64a+Omnn35T3/WNt/cESampdtDB006ztUlTptgBCHNy
7PgRSimllGq6lgRW3n5b8V90p0yxQ3c88IBNktCnD/zkJ/C979nMe27Q4G2elui5l1vjkKipmbdG
JH5yl9WXofD//s/WkrQVY2xgWV+Ademl9W97zTWJa9Lip/LyxtdpbqCWSGUlPPqondqCtwmiN728
+7wNAqSmiA+QGpvfVOedd17Biy++2PPiiy/e9ac//SnzqaeeWgsQjUbl+uuv7//pp5+m+3w+tm7d
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#38382;&#39064; 4 - &#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><ul>
<li>选择上述图像中的其中一个，并给出其最大深度。</li>
<li>随着训练数据量的增加，训练集曲线的评分有怎样的变化？验证集曲线呢？</li>
<li>如果有更多的训练数据，是否能有效提升模型的表现呢？</li>
</ul>
<p><strong>提示：</strong>学习曲线的评分是否最终会收敛到特定的值？一般来说，你拥有的数据越多，模型表现力越好。但是，如果你的训练和测试曲线以高于基准阈值的分数收敛，这是否有必要？基于训练和测试曲线已经收敛的前提下，思考添加更多训练点的优缺点。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#22238;&#31572;:">&#38382;&#39064; 4 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-4---&#22238;&#31572;:">&#182;</a></h3><p>最大深度为3时的模型较好</p>
<p>训练数据增加，训练集曲线评分变低，验证集曲线评分变高，最后两者都趋于稳定的值</p>
<p>对于深度3来说，由于训练和验证集曲线趋于收敛，更多的训练点数据作用不大，只会增加计算成本，使用更多训练集在学习曲线收敛前作用比较明显</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#22797;&#26434;&#24230;&#26354;&#32447;">&#22797;&#26434;&#24230;&#26354;&#32447;<a class="anchor-link" href="#&#22797;&#26434;&#24230;&#26354;&#32447;">&#182;</a></h3><p>下列代码内的区域会输出一幅图像，它展示了一个已经经过训练和验证的决策树模型在不同最大深度条件下的表现。这个图形将包含两条曲线，一个是训练集的变化，一个是验证集的变化。跟<strong>学习曲线</strong>相似，阴影区域代表该曲线的不确定性，模型训练和测试部分的评分都用的 <code>performance_metric</code> 函数。</p>
<p><strong>运行下方区域中的代码，并利用输出的图形并回答下面的问题5与问题6。</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">vs</span><span class="o">.</span><span class="n">ModelComplexity</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
AAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecXFX5/9/P9J3t2d2U3U0hgSRABNQoRcQCKCrVr3xR
QEVBOiJFUcpPvyoQuiBNQEEUBf1+LSAoFpAqUpSeRJJAks0mm91snd3pc35/nHtnZluybbLtee/r
vubWc8+9d3Y+9znnOc8jxhgURVEUZbrgGe8KKIqiKMrORIVPURRFmVao8CmKoijTChU+RVEUZVqh
wqcoiqJMK1T4FEVRlGmFCt8UQkT+KCJfHMJ+ERFZuDPqpEw/ROQUEfn7GJRzmYjcPgZVGnNEZA8R
eUVEukTkzPGujzI8VPh2MiLyjohEnX+YdhF5VkROF5FRPwtjzCeMMT8dwn4lxph1oz1fPo6YulPG
uUZ3+YSxPNcg52/IO+cWEfmJiBQX+rwTCRGpE5G7nevvFJGVIvJtESka77qNBGPM94wxpwOIyK4i
MuJBx44Yp53vR6eI/FtEPjmK6l0E/NkYU2qMuXUU5SjjgArf+HCEMaYUmA+swP4T/Xh8qzQ6HDEt
McaUABuw1+iuu6/v/iLiK0A1PuGc/z3A+4FvFOAciIi3EOUO4/z97p2IVAP/AHzAvsaYMuAwoBpQ
697ylPP9qATuBX4tIuXDKSDv3s8H3hhJJQr03VeGgQrfOGKM6TDGPAgcB3xRRJYBiEhQRK4VkQ0i
0iQit+e/tYvIUSLysvPmulZEDnPW/11ETnHmdxWRJ0SkQ0RaROSBvOONiOzqzJeLyL0i0iwi60Xk
Utf6FJGTRORppy5tIvK2iHxiJNcqIt8XkQdE5Jci0gWcKCIeEbnYuYYWEblfRCrzjvmAiDznWMYv
i8hBQ7yvjcCfgX3yygqJyPUistG5p7eKSChv+7ccS2mTiHzFuUcLnG0/F5FbRORPItINfHB75YnI
TBF5xKl3q4g8mXeei0Wk0Xl2q0Tkw3n1u0lENjt1uF5EAs62Q8S2FFwsIluAOwe47AuBbcAXjDHr
nfuw3hhzjjHmDaecA0XkRec78byI7JtXr6dF5LvO/e4Wkd+JSJXzvDpF5J8iMs/Z1+fcn3Oc70SL
iKyQQVotxDYL/tW5F6tE5L+c9UEReU1Ezsgr9zkRudhZ/r6I3OMU86Szzm1F+KBzf3fPO88cEekR
kaodfD/SwE+AMLCLc+yRYpsu2517sSyv3AYR+bqIvAZ0O8/zg8DtTl0WikiF8z1pdp7Vt0REnONP
EZEnnefbClzqrHvCWdcuImtEZF8ROTnvO3ViXh2OlNz//AYRuSxv267O8/iCU9dmEflm3naf2Gbj
tc7xL4pI7faezZTHGKPTTpyAd4BDBli/ATjDmb8BeBCYAZQCDwFXOtveD3QAh2JfXOqApc62vwOn
OPO/BC5x9gkBB+adywC7OvP3Ar93zrMA+A9wsrPtJCAJfAXwAmcAjYAM9xqB7wMJ4AinTkXABcAz
zjWEgLuAnzn7z8X+kH/c2f8woAWoGuScDcCH8459E7gub/sPgd9i3/bLgEeA7znbDneua3eg2Ll3
BljgbP850Abs79QluIPyrgFuBvxAADjIWb8nsB6Y7SzvAix05q8AngVqgJnAP4FvO9sOAVLOPgGg
aIDrfxG4bDvPpNr53nwOaxV+3rm/lc72p4HVWOuwEljlLH/E2f8XwJ3Ovj7n/vzV2Xc+sAY4ydl+
CvB3Z74E2AR8wTnuvc55lzjb93bu7WLg2873wZv3nbnHmd8VMH2u6Q7g8rzlC4DfDnL9+XXyAecD
ndjv/fuAJufTC3wZWAsE8r5bLwH17r137tdJeeX/AviNU95C5358Me/cKez/jxf73T8F+7/1eWfd
Cue7cRP2+/VJ53mFnTI+6nx/PM49awEOz783wO3Y/6P3AHFgN2f7t4BXgN2c4/fB/rZs99lM5Wnc
KzDdJgYXvuewQiVAN7Aob9v+wNvO/I+AGwYp++/khO9e54ehfoD9jPPP4sWK0R55207L+4E4CViT
ty3sHDt7uNeI/RF7rM+6t4AP5S3PBWLOP+clwN199v8bcMIg52wAIkCXU8c/A+XONo9T7vy8/T8I
vJV3r76Xt20p/YXvJ3nbd1TeFdgfwUV96rgE+wN7MODrs2098LG85U+59x4rfDGcH+JBrv9t99kP
sv1LwLN91r0AnOjMPw1clLftRuChvOVjgBedeVf4Dsnb/lXgUWc+X2ROAB7vc94fA5fkLV8ErARa
cV4E8r4z9zjzAwnfB5zrFmf5ZeDTg1y/Kz7tWNF4Fvios+1OnJeMvP3XAh/I+259oc/2rPBhX3BS
wOK87WcBf80797oB6rMyb/ndzj2tylvXASwb5HpuBq7Jvzfk/V8C/wI+k3ctnxqgjB0+m6k6aVPn
xKEO+49fgxWYl5wmkHbgT856sOKwdgjlfQMros+LyBsi8uUB9qnG/tOuz1u33qmLyxZ3xhjT48yW
DOH8A7Gxz/I84KG863zNWT8Ta0V8zt3mbN8PqN1O+Ycb23d6MLAH9q0WYDb2LfqVvLL+4JwHp8z8
uvWtZ991OyrPfXv/m9O89HUAY8xqrFXyXWCr04w4O68O23sOTcaYxHaufRswZzvb+5Y/4Dny5qMD
LPd97vn3ZD0DP5v5wAf6PMfj+tT1HmARVmiH7HRljHkGKzgHOk2T84CHt3PI08aYCmNMtTHmAGPM
Y3l1vKhPHefQ+94M9J1wmYl9idze8xvo+L73N22M2dZnXQmAiOwvtiujWUQ6sMJZnV+YMWZL3mIP
uec12G/GUJ7NlESFbwIgIu/D/pM8jX0bjQJ7Ov+kFcaYcmM75cH+Ay3aUZnGmC3GmK8YY2qxVtyt
4vTr5dGCbW6Zn7duHrb5oxD09cprAA7Nu84KY0zI+QfeiLX48rcVG2Ou2eFJ7A/afdgmR7A/MAls
E07+PXUdGzZjm7Fc5u6g7tstzxjTaYw5zxizADga+6P6IWfbz40xH8A2c3qBK50yG9n+c+h77/ry
V+AYt19pAPqWP9A5hkv+fZrnnKMvG4G/9XmOJcaYs/P2uQ34HXC4iOw3yLkGu/57gROxTYa/MsbE
h3cJ2Tr+T586ho0xvxrC+QG2AmlG9/x2xP3A/wFzne/ZXdgX26Ew2G/GUJ7NlESFbxwRkTIRORz7
pf65MeY1Y0wG2/Ryg4jMdParE5GPO4f9GPiSiBws1jmkTkSWDlD2sSLi/pi3Yf/xMvn7GNvJ/yvg
chEpFZH52L6PnxfgcgfiduAKyTlNzBSRI51tP8P+kB8qIl6xzh8fcTvlh8ANwCdFZJlznXcBPxCR
GrHUi8jHnH1/BZwsIktEJAxcNlihkL1vg5YnIkeIyCJHhDqwP4oZEdnduYYg9uUmSu6Z/BL4fyJS
LSI1Th2G8xyuxVoAd+fdz3oRuVFE9sRapHuKyHGOs8Px2Cay7VlIO+IbYp065mGbOh8YYJ8HnfMe
LyJ+Z3q/iCxx6vglYBm2Wf084Gcy8DCUrYCR/uNPfwZ8BjgeK4Ij4U7gLBF5n/MsS5xnOKThMMaY
JPC/2O9yiYjs4lzLWP4flQKtxpiY83Lw2WEcexfwffc7KSL7iMgMdvBspjIqfOPDQ2I9Gzdi+7Ku
x/bBuFyE7Rx/TkQ6sW/zSwCMMc87+96A/VF9gv5v8mA76v8pIhHsF/zcQZqRzsH2Ka7DWpy/wHq8
7Qyuxzbj/s25H89i640x5h1sv9JlQDPW+ecChviddazG+8iJ2AXY5qfnsfftz9jOfowxD2Gtjiex
/Y7POMdsz3oYtDzss3oM2+f4DHCjMeYpbPPo1VhLewvWMeQS55j/wTogvA68inVuca3BoVxvC7Yv
GOAF537+xTnXOmNMM3Ak9ru1DfvDfLgxpm2o5xiAh7D9av/GOvrcM0C9OrAOSidiLest2OsKivWa
vQ7bf9ZjjLkXe+3XDlBOl3PcP51mueXO+newTeRxY8yzI7kIY8xzWMeT27Avif9x6jsczsS2AryD
/Z/8KSMX4oE4A7jSea4XY1/Whso1WIv6b1iHnjuA0PaezRjWe0LidgoriuIgIu/COgcEHQtcyUPs
OLQksIsjPOOKiNyLFffvjHddlMmBWnyKAojIMSIScJqAVgC/V9Gb+DhNn0ex81oplCmACp+iWM7C
NguuwQ4dOGt8q6PsCBG5Ets8fIUxZsN410eZPGhTp6IoijKtUItPURRFmVao8CmKoijTikkZJby6
utosWLBgvKuhKIqiTCBeeumlFmNMzY72m5TCt2DBAl588cXxroaiKIoygRCRvmH5BkSbOhVFUZRp
hQqfoiiKMq1Q4VMURVGmFSp8iqIoyrRChU9RFEWZVqjwKYqiKNMKFT5FURRlWlFQ4RORn4jIVhF5
fZDtIiI3icgaEXlVRN5TyPooiqIoSqEtvnuAw7az/RPY5J27AadiE0EqiqIoSsEoqPAZY54EWrez
y1HAvcbyHFAhInMKWSdFURRlejPefXx1wMa85QZnXT9E5FQReVFEXmxubt4plVMURVGmHuMtfEPG
GHOHMWa5MWZ5Tc0OY5AqiqIoE5377oMFC8DjsZ/33bdTTjveQao3AXPzluuddYqiKMpU5r774NRT
oafHLq9fb5cBTjihoKceb+F7EDhbRO4H9gU6jDGbx7lOiqIoU4P77oNLLoENG2DePLj88qGJijGQ
yQz8mU5bserqgkgk99nZaefd5UgEurvtFInYY7q7c5+rV9uy8unpsfWdzMInIr8EPgxUi0gD8G3A
D2CMuR14BPgksAboAb5UyPooiqJMKTKZ/pMrUg88AF/9KkSjdt/16+Hkk+Ef/4C9986JU09Pb5Hq
7rbH9PTYz77z0ag9x1ApKoJwODcVF8OMGf1Fz2XDhtHflx1QUOEzxnxuB9sNcFYh66AoilJQhmpV
uYK0PbHKZKwgpFL2MxaDtjZob89NnZ3Q0WE/XfHKt7zcafPm/gIVj8Mttwx8HT6fFaV8kQqHrUgV
F+cELBSy80VF/efdZffYYND23/W9Dx4PHHWUrWNf5s0b2XMYBuPd1KkoijI5SKft5IpTOg333w9f
+1pvq+qUU6CxEQ47zFpPrnDli9JgYuWu6+62n7HYjutVUgKlpbmprs5+Pvjg4Mfce29OrAIBK1KB
wOD7u2Ll84HXaz/7zruTx7PjSQSuuaZ3Hx/Yelx++dCexygQMxyTdYKwfPlyoxnYFUUZEfnClT+f
TkMyaadEIjefSllLqavLClhrqxWztja49VYrVn0RsT/wgzXnufj9VqTKyqyAlZX1FjF3cteHw3Y/
t8kwFLLlGGPP6WIMHH00bNnS/5y1tfDssyMTq7FmpH2QgyAiLxljlu9oP7X4FEWZ+Az0A3n88b1F
K1/IXNHqK2SplN1HxFpp7e1WwFpb7ZTfpJi/vrXVHjtUjIGvfGVwMXObFAOB3k2c6XTvpsF8w8Tj
sULp89nj/H47BQI568vrtft5vXD11XD66f0tqquvhvnzR/9MxoITTii4I8tAqPApijKxMCYnUqkU
/PKXcN55/ZsT16yBT3wid1wyafu9tm2zfWCueOWLWFub3d7a2lsQ8nH7taqqYM4cWLbMzrvr8ueP
PXbgfqrZs+Gkk/pbYSL20xWtfPFy510Byxcxd344fP7z9pgxtKimCtrUqSjKzsUVNFfcYrHeUyJh
9xOxltCRR8JA0ZpCIdhrLytk27ZZgRsInw8qK/uL1kDzM2ZY4YOcBeZaifkWnytif/wjrFjRuy+u
qAiuvx6OO25wEVMKgjZ1Koqy83GFwhW2ZNJaaq6oxeO55jtjrGXW3AwtLfazqclOW7ZYS6qpyZYx
ELGYLWPXXWHffXsLmStiVVW2qTHfWsoXNHfeJZGwdQRrhQUCtrkyGLRC61pkbt/Y+95nz69W1aRC
LT5FUYaGMb0ttWQyJ2jRqBUM1yoSsZ6JW7fmRG3rVjtt2WK9HrdsyTVfuvh8MGuWbSqcM8dOv/qV
Fci+1NbC44/nlvOFzBU2ty751xAIWCHLn9y+s3xPxUI4cygFRS0+RVGGzn33wcUXw8aNUF8Pl15q
x1n19FhBc601t48qmcyJ2tatva21zZutqPUVKxGorrZitngxHHRQTtzmzLFiV13dvylwt93g//2/
3s2JoZB1hW9rywmUa6G5Y83cfrN870WvVwVNUeFTlGmFK1qJhJ2iUTsW7dJLc8KycaON+PHCC7Bo
kRW3vqLW0tK/7IoKK2C1tfDe9+bEzP2cNav/WLG+zY6dnf0ttEMOsZ833mjPX1cH3/42fPazKmjK
iNCmTkWZiuS78cdiuVBUrrhlMtZK27gRvvUtKzjbIxzubZn1tdRmz845hbi4DiGuqPVtejTGipYb
8cOd+lppw/VmVKYt2tSpKFOddDo3Pi0e7x0A2H2hTSatldTQYIcBvPMOrFtnp4EGXvflwQetuJWW
9rao+opaPG7rku+y7/PZ/rOSklyUEFfMXHFTUVPGARU+RZnIGJNrlkwme0e4TyRyYhSNWoeRjRt7
i9s77/T2iqypsc2XRx1lPxcuhIsuss2YfXGbLVOpXH+dK6herxUyN4ZjX0vN71dRUyYsKnyKMhHI
73cbqGnStaK6u624bdgAb78Na9dagdu0KSdKHg/MnWtF7UMfygncwoXWtd/FtRjPOguuuKK/88gF
F8DMmTlHkb5OIooySVHhU5Sdxc9/bj0nGxqsg8YFF8Chh1rrLZOx+4jYads2K3Dr1+fEbe1au94l
GIRddrEpZo45xgrbokU2k3UwmNsvk8lZjK4XpBs9pKTEpqqZPRu+9z1bNx2Lpkxx1LlFUcYa13PS
HQYQiVjPye9+t79VdeaZVrBcYXNFLj+cVnl5TtTcz0WLbDNkvuWVyfSOT5nf11ZcbEWuuDg3js2n
773K1EKdWxRlZ5BK5aJ9uKlkIpFcIGSwnzfc0D/FTCxmQ1u5zJ5the2//qu3wFVV9XfxdyOiuP13
rqVYUmKHFRQXW3Fzx7IpipJFhU9RhoLbXOhacZ2dVujcuJKuZRWNWovtrbdg1SpYvdrOby+v2q9/
bYWupKT3elfgurutwOannikutoLohtNyB28rirJDVPgUpS/5TiZuYlC36dG1rETsMIE1a6y4rV5t
hS4//1llJSxdagda/+53AwdRrq21gZYTiZyQuk2UIrlMAa7AueG1dLC2oowYFT5l+uKOP4vHrbDl
N1O6fd9+vxWkdetyAudaca615/NZi+3974clS+y0dKkNv+UK1LJlvaOjQO+wW0VFti+vtDQncIGA
CpyiFAAVPmXq446Fi8dtU6QrcG4UfpGck0hjY+9mytWrbSxKl+pqK2onnpgTuIUL+zcz5o+/S6Xg
wAPhm9+EH/3IWoVu2K0TT7TH6pg3RdlpqPApU4f8QMt1dXDhhXDwwdZiy28+DASs+PVtply7Nucs
4vfbdDMHHJATuMWLrfD1JZ3OZSdwLUXX0WTmzFwz5fLlVuwURRlXVPiUyU88Dj/9KZx7bq4psaHB
WliXXmqbGfObKVev7h1keeZMK24f/GCuqXKXXfp7Q/aNouLi5mybPds2WWozpaJMaFT4lMlHOm2t
uM5OK2DxuLWkBhoucOmlueVAwKa4OeignMAtWWKdR/qSyeSygbuDy43JeVPm98XpeDhFmVTof6wy
8THGNiV2d1uhczMJ+Hx23XPP9fam7MsNN1iBmz9/YJFyw4XlW3Fer7Xiqqt7j4nTvjhFmfSo8CkT
k0TCelq2tlqvRzelTSBgAy8/9RQ8+SS8/roVRo8nZ5nlU1sLn/yknTcml0Ugnc6tC4VyHpWhUE7k
FEWZkqjwKRODTMYKXWenjUfpjpvz+22T47PPWqF7+mk7Hs7jsTEqzznHBmJeu3bgLN2nnZYbP+c6
nFRW5qy4YFADLivKNEOFTxk/3CwErlXnWm7BoPXMfOIJK3avvWa3zZhhRe6gg+ADH7AC5rLHHtaS
u/lmm2Jn9mzr1XnCCepwoihKL1T4lJ1HKmUtufZ2K3buOLpg0Fp8zzxjxe7pp3NZBPbeG84+24rd
smW9+9jceJXptF1/3HE2xU5xscanVBRlUFT4lMLhOqV0dVmh6+qy671eK3Zr1liL7skn4dVX7f6V
lXZYgWvV5XtcGmOtxGjULgeDNllqebkN7aWOJ4qiDAEVPmVscWNOtrVZsUunreVWVGSFK9+qa221
2971rpxVt+eevfvc3MHhbpqdsjLrsFJSYvvw+mCMIZ6OY4xB8po1BTvvrhtseXv7KIoyNVDhU0ZH
Op2Lc9ncnHMu8fut2K1a1duqy2Rs2pwDD7T9dQce2H8cXSJhxS6TsSJYXZ1zSMkbjpDOpImlYsTT
cSLxCJ3xTrpT3VnBMsYgCAYrgu4yQFbn3HSUznKv/JSStx3wiMdZLYg4k/snApITSw92X49jhbrL
IoLP46M4UEzIFyLgDRDwBvB59F9RUXYW+t+mDJ9UyvbTbdsGHR05p5SiImuVPfOMFbqnnrL7iNj+
uTPOsGK3bFlvq85tEnUHixcXQ329te7CYRAhkU4QT0WJxWN0xjuJJCLE03EwYMTg9/gJeANUBCsK
ZqG5omgcNdzRMkDG2CEWaZPOboumorRGWzGY7DE+j49ifzHFATu51xPwBtTiVJQxRoVPGTqZjA2y
/N3v5jwnzzvPJkt1rbpXXult1X3wg3aqqupdViqVa8L0eKxFN28emeIwCS/EU3G6Ex10bWugK9FF
OpPOHhr0BQl4AxT5i3bq5fdrFh2NHvXxvUln0iQzSZp7mmnsasxZrWIo8hVR7C+mJFBCyBfC7/Wr
lagoo0B6Ne1MEpYvX25efPHF8a7G9MEY22d3223w/e8PnlR12TLbT3fQQTbHXN/xcW76H4BAgFRl
OfGyMPGAl65UD13xLttUaWyzoUc8WavHbWacbhhjSGaSJNNJUplUL2vStRLD/jDFgeLsvfJ7/Gol
KtMSEXnJGLN8R/vpK6OyfTo7Yf1667By880Di15FBTz8cP/MBc6gdJNIkDQp4kUBorNL6fRniJAk
nmmGHiDKTmmqnIyISFbQ+pLOpG3/ZiJCqstGthHb0Zi1Evv2JXo9E2uwvjGGjMlkJ0PvZXdKZ9Kk
Mil8Hh9F/iJCvpBavMqI0W+OMjDd3TbDQWurHfj9yCODx8Ps6MiKXiYeI97dQTwVp8ck6Cz201Xp
JRMMIH6ACAFPgIA3SNhTvNMuZyri9XjxeryEfL29W10rsSPeQUu0pZfDTsAbyFqIYX942FZiL5Ey
A4tUvlCljf1MZVK5daTJZDKkMikyZKwDUp+Wp3wvW9c5yd3PtXqD3iBlwTLKgmVZMZxowq5MTFT4
lN7EYrBpk/XQDATg+efh+uthwwa77GYdzyM9ayYNjW/Smeqmx2uQykpMcRhvUTUBf4jSadxUOR4M
yUqMREiZVNZrVUQI+8KE/WEMhrRJZ4UqYzJZ8RroXPm4Djse8WQnQXLzIvjw4fHllkdKKpOiI95B
c09zdl3IH6I8WE5ZsIyQL0TQG1QxVPqhwqdYkklr0TU22iEDb70F115rhyAsXgx33AEdHZjLLkPy
mjvTwQBvn3YsnbPKCJTOpyIU1qbKCcxQrETXunKFye/xE/QFJ9zLi8/jwxfwUUyu5SCZTtIabaWp
uykr6mF/mPJgOaXBUiuGE/BalJ2LCt90J52GrVttbEwRO3/DDfD44zBrFlxxBRx9NHi9dKd6aG1f
z8w7f0GguY1U7SxaLj6PzHFHUzLe16GMiu1ZiZMJv9eP39vbZTaRTtASbWFLZIttJhUo8ZdQHirP
esoGvUF9YZtGqPBNVzIZ23+3fn1uaMEtt8BvfmPHzl1wAXzhCxAKkcwkaWheR1NXI0VHfozomafa
cGGKMgnoK+iuddsUaWJTZhNghb80UEp5sLyXQ5CK4dSk4MInIocBNwJe4C5jzIo+28uBnwPznPpc
a4y5u9D1mrYYY51R1q/Pxbz86U/hnnus9feFL8Dpp0NlJcYYWjq38M62NRAuoXL39yIlatspk5uB
rFtjDIl0gsZIY3bMqEc8WeeZfDFUJj8FFT4R8QK3AIcCDcALIvKgMebNvN3OAt40xhwhIjXAahG5
zxjT34tCGR1dXbZJs7PTWmx/+IO18trb4fDD4Wtfg7lzAYhEO3i7+T90ezOU7bYnvrIKTemjTFlE
hKAvSNCXa8nImAzxdJyGzoZsBB6fx5cVw7A/nA0ooEwuCm3xvR9YY4xZByAi9wNHAfnCZ4BSsW0K
JUAr0N99TBk50agVvG3bbGDn556znpobN8J++8HXv24HnwOJRJSG5rU0pToIz13IjKpZmvVAmZZ4
xEPIF+rlCJTOpOlJ9tAWa8sOwfB7/ZQFyygPlmf3VzGc2BRa+OqAjXnLDcC+ffa5GXgQaARKgeOM
cV6vlNERj1svzaYmOxThrbfgmmvg9ddhyRK4804bTkyETCZNy7aNvBPZhGf2bGbMWoJoTjtF6YXX
46XIU9QrXF46kyaSiNDa0wrYIR35lqE7xlAj6uRwh9XEU3F6kj0YDPVl9Tvt/BPBueXjwMvAR4FF
wF9E5CljTGf+TiJyKnAqwLx583Z6JScVqZQdmrBpkw0btnWrtfCeeMLmr1uxAo48MhtSrKu9ibc7
3iFaXkzpsnfjC4XH+QIUZfLg9XgJe+wYSJd8yxAAYzN1lAZKezWTTnUHmozJOAHm48RSNsB8d6Lb
Bpgnl+nEI54pJXybgLl5y/XOuny+BKwwtt1gjYi8DSwFns/fyRhzB3AH2FidBavxZCadhpYWO9jc
zXjwwx/Cb39r89d9/etw4onZPHaJ7k4a2tazNZQmvNtiKksrx/kCRsdDqx/i+ueuZ3PXZuaUzuH8
/c7niCVHjHe1lGnIQJZh3z5DV/BcMSwOFBP0BiflOEPXUzaeslZcV6KLSCJCT6oHO4LEhtILeAME
fAHCgdxLQsZk6E5079T6Flr4XgB2E5FdsIL3WeD4PvtsAA4GnhKRWcASYF2B6zW1MMYOTdiwwUZW
MQbuvtuq9kgPAAAgAElEQVR6a2Yy8KUvwWmn2Zia2LBiza0bWS+deOfWUVk5a9K/dT60+iEuffxS
Yik7uL6xq5FLH78UQMVPmRAM1GfoepNuiWwhlUnZsGxiKPYVUxYsozRYap1uJlAEmlQmRTwVJ5FO
EElEslPGZLL5L90MIhM19m5Bhc8YkxKRs4FHscMZfmKMeUNETne23w58D7hHRF7DJnq5yBjTUsh6
TSk6O+Gdd2zWg0AAfv97m0Whvd02Z557rs1tB5BK0dW2hXXJZmIzKymr3huvdyK0dg+P7kQ3jV2N
NHY1sqlrE41djfz81Z9nRc8llorx7b9/m+aeZupK66gtraWurI7KUOWE/GdUph8DeZO61lNLtIXN
kc3ZJMpF/qJsv2HQGyx4bNKMyWQFrifZkxW4RDqRFWif+Ah4A5QGSyeVlappiSYr3d3WK7O93TZd
PvaYjbjS0AAf+ABceCHssYfdN5Mh3tbMxlgzzVVBimvqCAUmZj+eMYbWaCubujaxuWtzL3Fzp454
R69j/B4/yUxyyOcI+8NWBEvrqCury87Xl9VTW1pLVVHVtBNGbSae+CTSCRLphP2uG0c0vcFsU2nI
byPQDNej1LU6E+kEsVSMrngXkWSEaDKateDyU4SNtdi6TZ3vrX3vqMvStERTlVjMiltzsxW81aut
p+Ybb8DSpfDjH9sEsADGkOnsoDm2jfXFKTx1tVQVzxjX6qcyKZoiTb0ELV/gNkc297Pciv3F1JXW
Mad0DvvM3icrVLWltdSW1lJTXMPB9x5MY1djv/PVltby+8/+nk2dm9jU5UzOfGNXIy9vebmfkIZ8
oV7nqC+r72UxVoerJ9Xb7Y7QZuLJwUAh5ZLpZK9A3YLg9/opDZZmh1e4iZvd/RPphA1UHo8QSVor
DgOIFUH3PJVFk7vPf3uo8E0WEgnYvNl6a/p8VviuvRaeegpqa+Hqq+GII3Jj7rq76exu5e1QjFhd
KWWlNWPyprYjyyCajNIYaaSxs7FXc+TmiBW3pkgTaZPuVWZVURW1pbUsrlrMhxd8OCtortiUBct2
aIGdv9/5vX68wQrY+fudb5uHasrYvWb3AY+NJCI5YezclK1zQ2cDr299PeeZ5xDwBqgtsSJYV1pH
bVnOeqwrraMmPPC9HkurKmMy9CR76E50053szn3mzw/xszXa2q/8WCrG/zzxP5QFy1havZSZxTOn
nRU8GXBjk+YH6k5lUnZ4RbQVY2xKJ6/Y72M6k7YCh8nmwCwPlk+7Z6tNnROdVMoOR2hosJFTurvh
ppvgd7+DsjIbXuyEE3KxM2Mx4pF2NvpjNFf4KCmr6dV/MBr6WgYAXvGye/XuGAyNXY39RMIrXmaX
zM6KmStoc0rnZJf7ZgoYTf0K0VyX36fY0NXQSxw3dW5iW3Rbr/39Hn/2+lxBbIo08dtVvyWRzgUk
CngDfH6vz7Ns5rKsEEUSkSGJVTQZ7ZWNfXuE/eFsUtqBPh9444EdljGjaAZ7VO/B0pql7F69O7tX
786CigUTxuFC2T5uGLaJ+LzGo6lThW+i0jeINMBdd8G999r5z3/eemqWl9vlRIJ0VwdbvTE2lIOv
tILSYOmYVukjP/3IgM2JPo+P/er369X86P7o1xTXTPlM2a6Vm21C7Wzs1aSany9uKAS9wUFFaoef
fdaF/eEdNssO9lxnl8zmuo9dx5vNb7KyZSWrWlbx1ra3sv2pIV+IxVWLrRDWWDFcXLW413g2RdkR
2senwH33wSWX2KEJs2bB2WdDJGI9NTs74aijrKdmba3dP52Gri46TJS3Kw2J4hLKQmUF6YAe6McR
7Nvkj4/88ZiebzJR5C9iUeUiFlUuGnB7PBVn79v3HtBCE4SHPvdQL7Ha2S8KgzUTX7j/hSyvXc7y
2tzvSCKdYF3bOla1rGJl80pWtqzkj2v+mLUaBWFBxYKsELqiWB2u3qnXpCjbQ4VvInHffXDqqXZo
Atj+vMsus+PyDjzQDkBfutRuMwY6O4mlYmyo9LCtyEtpUQXhAkSP70n28I2/fGPQ7XNK54z5OacS
QV+QOaVzBnxxmFM6h92qdhuHWuVwm4OH0kwc8AZYWr2UpdVLOXrp0YB1iGjsasxahStbVvLKlld4
5K1HssfVhGtYWr00K4RLq5cyv3z+hGx6U6Y+2tQ5kViwwDZt9qWqCp59Nrfc1UU6Gaep3EdDURJf
sIiSQGHSBTVFmjjj4TNY2bKSwxcfzp/X/rmfZfD9j3xfvf92wED9o1P93nXEOrJC6H6uaV1DKmOb
7sP+MEuqlvQSxN1m7NYr2omLDreYumgf3xCZssLn8VhLri8isGqVtQRjMTrKgqwLx0n6PJSFygrm
Wv9m85uc/ofT6Up0ccPHb+DDCz6sP0CjQO+dbSpd27qWlS0rebP5zawgRhIRwEY32aVil15NpRs6
NrDimRXT6qVhOqHCN0SmrPDNm2cHpfdlzhz4zW+IFQfZUC5skyilwdKCJsX829t/44JHL6AiVMHt
h9/O0uqlBTuXMr0xxtDQ1cCq5lW9BHFzZPN2j5tZPJPHv/j4lHeemuqoc8t0xhg46ST43vd6rw+F
yJx9FlvmVrAx047fF6AqUFXAahjufvlurn7mapbNXMatn7qVmcUzC3Y+RRER5pbNZW7ZXA5ddGh2
fVu0jVXbVnHS704a8Lit3VvZ+/a9qS+tZ17FPOaXz2deee6zrqxOM6YrA6LCN1HYtg3+9S/brFld
DS0tmFmz6LnkG6w+5oMk6aC8qKKgEUOS6STffeK7/OrNX3HYrodx1SFXjdkYO0UZLpVFlexfvz+1
pbUDOgZVBCs4btlxrO9Yz4aODbzU+BLdyVyUf494qC2t7S2IFfOYVzaPueVz9bs9jVHhmwgkEvCb
38DDD1uvznPOIRaLsL6+lLZkFyX+ECUFfnPtiHXw1T99lecanuP05adz7r7nTqmwXMrkZbDhFpce
dGmvPj43zqsrhOs71rOh3X4+8tYj/ULTzS6Z3ctCnF8+n/kV85lbNpfiQDHK1EWFbyLw9ttw1VVQ
Vwdnnkmqo41VMyFj4swIFz625vr29Zz2h9No6GzgqkOuyrqpK8pEYKjDLUSEqnAVVeEq3jPnPf3K
aY+1s6FjQz9RfOztx/pF36kJ1/SyEvPFsW9gCHVamnyo8I03nZ02Wey6dXDrrZBK0VCUJBkupbxA
QxTyeWHTC5z9yNkgcM/R9/QarKwoE4UjlhwxajGpCFVQEapgr1l79dsWSUT6CeKGjg08vfFptq7a
2mvfylBlVhBjyRiPv/N4NpqNG+A7lUlx9NKjxz0GporywKhX53iSTsNf/gLHHAMHHAA330zHtkbe
rPUxo2x2wf9pfrvyt1z2+GXMLZ/Ljw7/EfPK5xX0fIoyGelJ9rCxY2NOGPM+B4tmBDaKTcAbyCaS
zZ8PeoMEfIFsxvV+65z1fY/Jrss/boB1AW+AR9c+ymWPXzahh4E8tPohrv/H9WyObGZe+TwuP/hy
TnjXCSMuT4czTAY2b4bPfQ6efx4efphkKMCrxV0EZ9cX1BstYzL84Lkf8KOXfsT+9ftz42E3Uh4q
L9j5FGWqsvTmpYMGCz/zfWdmE7nGU3HiaWdy1znz8XScRCrRb/twckwOB5/Hxx41e/QT23zxdFMT
9RXl7D599+sjuu42v8c/6Av8QEEdwv4wdxxxx4jFT4czTHRiMfjlL+GJJ+CCC6C6mvWd6zGVMwsq
etFklIv+ehGPrn2U4/Y8jssOumzYiSsnIsYYMiZDxmQwGHwenzrnDAFjDPF0nFgylv0BNxhCvpAG
mx4Cg4Wiqy2t5dx9zx1V2RmT6SeaWYHczjr3mOufu37AclOZFGXBMhKpBF2JLhLRRC/BzRfloWYA
GQxBelmk+WK6pnVNP3HvSfZwyd8uGZXVNxRU+MYDY2wkluuug113hS9+kdbWTTTPDlEVrijYabd2
b+WMh8/gja1v8M0PfJOT9jlp3PsgXLHKmExWvNIm3UvIgO3W02Dw4MHn8eH1ePGKl0giQiaTwYjN
OxbyhXSgM7ls29FUNJurrTxYzpySOYT9YUK+EJFEhM2RzbRF2/B6vJQESvQlYhC2lwdytHjEQ8gX
GvGwi/vfuH9QUR5KUHljDMlMMieGqXg/gc1f7wpmvvXqbh9ov5UtKwc874aODSO63uGgvwTjQVsb
/OAH0NgIP/sZ8WiEtaEoZZWLC3bKVS2rOO0Pp9EZ7+SWT93CwbscPKry0pl01rrqK15pY7d58GAw
CP1Fy32T9Hl8VrDEi9/jx+vx4vP48Hv9dp3z6RHPdqe+wmiMIZaKEU1FaY+20xHvoCvdlT1nflbq
qU4inSCajGZfIsqCZcwvnz9o2qLyUDnloXKiySjN3c1s6d4CBsKB8LS5Z0NlOAG+dzajFWURGTDr
+1gxWDqsneFroMK3s0ml4LHHbCaGo4/GvPvdvNP0Bp5FcwvW5PjY249xwZ8voCxYxi8+/YtBM5EP
lY5YBx7x4Pf68Xl8BLwBvOLNipgrYB7xZD8HmwqFiFDkL6LIX8SMIjskxBWAzngnbbE22qI2aa77
Zh3wBsbdAh4LEukEsVSMdCaNiFDsL6a+rJ6SQAlhf3jIGRGK/EXMq5hHbVktbdE2NnVuIhKPEPJr
M2g+Y+FxWggmsijDwMIc9oe5/ODLC35udW7Z2axfD5/+NKxZA3/6E1sTbaytNFTVjX1qGmMMP33l
p6x4egV7ztyT2z5126jDj3XFuwj6giytXjrpmw5TmRTRZJRIIkJbrI2uuLUI3X6JoC84KZr43Gak
/KwHM4pmUBosJewPj9lzMsbQlehiS9cW2mJteMVLcaBYUwspI2a8vDon9y/XZKO7G+6+24Ym+853
iAW9vBNvo3zW3mN+qmQ6yfee/B4PvPEAH1v4Ma4+9OoB070Mh+5ENz6Pj8VViye96IFt8iwNllIa
LGVO6RzSmTSxVIyeZA/tMds8OhH7CVOZFLFUjGTayYTuDzGrZBZlwTKKfEUFazkQEcqCZZQFy4il
YrT0tNDY1YgxhuJAsTaDKsPmiCVH8KnFnxqzINVDZfz/i6cLxsArr9jB6nvthTn2WN5ufBXfLvPx
+cb2B6Mz3sm5fzqXZzc+y2nvPY2v7fe1UVsusVSMjMmwe83uU/YHzuuxFkxxoJia4poJ00/YV+iC
3iBVRVVUhCoo8heNy/MI+ULUl9Uzp2SObQaNbKI12krQGyTsD0+JJmNl6qLCt7NobrZenO3t8OMf
s2XbO3SUBZlRMbaZDzZ0bOC0P5zGxo6NXHnwlXx690+Puky3z2jZzGXTKrDvQP2E8VScWCpGZ7yT
1lhrQfoJXcszmU5iMPi9fmYUzbBC5ysi6AuO+trGCq/HS3VxNVXhKiKJCFu6t9Da04pHPJQESrQZ
VJmQqPDtDBIJeOQR+O1v4cQT6dmlnvVbX6N80dia9i82vshZj5wFBn5y1E94f937R11mMp2kO9HN
HjV7qEMDZPv+ykPlzC2f26+fsD3WDgyvnzBjMsRSMeLpOBhrTVaGKqksqqTIXzQpXjZEJNtsHC+L
s61nG5u6NpExGcL+8IQSa0VR4dsZvPMOXH01VFeT+eo5rNm6kqK5C/EGx+4H7Xerfselj11KXVkd
Pzr8RyyoWDDqMtOZNJ3xTpZWL+0XmFexDKefMOAJZIXQtRzBWk0VoQrmhmxWgKA3OKmbCoO+ILVl
tcwqmUV7rJ1NXZto7Wkl4AtQ7C+e1NemTA1U+ApNZyfccQesXAnXX09jvIVYyE9F9ewxKT5jMtz4
zxu5/cXb2bduX276xE1UhEY/CD5jMrTF2thtxm5UFlWOQU2nBzvqJ2yPt5PKpKgMVVJXWkc4EKbI
VzQlxcDr8WazJUQSEZoiTbT0tCAIJcGSCeEopExP9JtXSNJpeOEF+NGP4IADiBxyEBsb/kXlsuU2
4ewoiaViXPTXi/jTmj9x7B7H8u0PfXtMPPqMMbRF21hQvoCa4ppRlzedGaif0I2YMp0oCZRQMqOE
ueVzaeluoTHSSCqTothfrM2gyk5Hha+QNDXBNddAPE760ktZu2UlxbXz8YRHn+SyubuZMx85k9ea
XuMbB3yDL7/7y2P2Y9oabaWurI7astoxKU/pzXQTvXwC3gC1ZbXMLp1NR6zDNoNGWwl4tRlU2Xmo
8BWKWMxmVX/0UTjrLBpmeIl3ZaiYXT/qole1rOKMh8+gLdrGzZ+8mUMWHjIGFba0RduYVTKLuWVz
x6xMRemLRzxUFlkHnu5EN02RJpp7mhERSgLaDKoUFv12FQJj4K234NprYe5cOr90PI1bX2fGbnuD
b3S3/O/v/J3zHj2P0kApv/ivX7BHzR5jVGloj7ZTUVTBgooF+uat7DSKA8UsnLGQ+vJ6WqOtNHY2
kkgnsk3EysgwxpDKpLKTiBD0BqdENpbRosJXCNra4OabYf16UnfczpqOtymtnI1UjNzpxBjDva/e
y4qnV7B79e7c9qnbmFUya8yq3BXvojhQzK6Vu06KMF3K1CPgDTC7ZDYzi2fSGe+ksbORtmgbPo+P
4kCxfi8HIJ1Jk8qkSGaS2ZB1GHDjwrvppcL+MMlMkvZoO5FEBLDOR+7Y0+mGCt9Yk0rBU0/BT38K
H/84G/ZZSLq1gcDcBSN2aEllUnz/ye/zy9d/ySELD+GaQ68Z0zF1kUQEn9eGItMBx8p44xEPFaEK
KkIV9CR72Nq9la3dWzEYinxFNvi5eKfFd9VNDeRabWmTRoyA2G0Bb4AiXxFlwTLCfps9w+/14/fY
APL9Wm4qcsHauxJdtEXt2FPX4SrkC0364TRDQYVvrGlosGP2vF7aLjybpm3rqZq3BEIjG7PXGe/k
vD+dx9Mbn+aU95zCBftfMKZvvtFkFAwsrVqqTSDKhCPsD7OgYgF1pXW0Rltpj7XbSELpGIl0wv5A
OxZOfsB9Ecmms8pmCnGWJ9qPen5zZDKdtGm8BDCOV7CvyGbW8IUp8hf1EraRiL+baqg8VE59WX02
CEN3spu2aBsd8Y7svQz6goR8oSlnbavwjSXd3Tar+rPPkvrGhawJRCjzV0B19ZCLeGj1Q9k0IjXF
NWCgNdbK5R+9nM/s8Zkxra6bIHLZzGXqUq5MaPxeP7NKZvVq3s9PXJzOpHt9ptIpEpkEyXTSJlNN
5cTSJV9gjNi8kV7xZkUzXzBHI5YZk8mKWiqTsqKSd96gJ0iRv4iKoI29GvQFs+m+doaTT34Qhtkl
s7ORhLoT3dkgDOlMGrDPYaIEax8Nk7v2Ewlj4I034MYbMUuWsO6Yj+Jp34J/6V7gHdpb2UOrH+qV
n2pr91YATn/v6WMueol0gp5kD3vO3FMdCJRJSVag8MIwDB9XHDMm00swU5lUNqu4K5bufMZkBrUu
83NOuuWISHYfr3gp8hdRHiwnHAhnHUz8Hj9+r3/CWVMe8WT7Bd0gDPF0nGgySnusnfZY+6RP6qzC
N1Y0N8ONN0JTEx1Xf5fWSBMzqmuhdOihvq5/7vpeSRldHvzPg5y3/3ljVtVUJkVXvIs9avagJFAy
ZuUqymTA63HEchj0Fcl8sXStymQmScgXyqaGcoVtsltHbt9fyBfKRnGa7EmdJ/cTmSgkEvDXv8ID
D5D6zKf5z8JyyhJAXd2witnctXlY60dCxmToiHWwuGox5aHyMStXUaYyHvHg8Xrwo/3g0LufcKyC
te9MVPjGAicItSktZd2px+LrieObtwgCwzP/55TOobGrccD1Y4EbimyXyl2oCleNSZmKoijbC9be
FmujM95p+wkFAp4AIV9oXL1yVfhGS2cn3HsvvPIKnd/5Fq2BNDN8FVA1fGE59T2n8p0nvtNrXcgX
4vz9zh91NV3Rqy+rZ3bJ2ATIVhRFGYghBWtPp0CsNS3s3GbRggufiBwG3Ijtfr7LGLNigH0+DPwA
8AMtxpgPFbpeY0I6Df/+N9xyC+l378Oqj+5FeczALvXgGb5Z/1brWwDUhGto6WlhTukczt/vfI5Y
csSoq9oea2dWySzqy0YfMk1RFGU4DJbUOZqK0hnrJG3SO7U+BRU+EfECtwCHAg3ACyLyoDHmzbx9
KoBbgcOMMRtEZGxTkheSpia44QZMVxfrLjyZYCKNt2Y2FA/fYeStbW9x/+v3c/y7jufbH/r2mFaz
PdZOZVEl8yvmT+gOZ0VRpg9u399YpFEbLoXubXw/sMYYs84YkwDuB47qs8/xwG+MMRsAjDFbC1yn
sSEWg4cfht//nu4TjqV1bhVhTxBmjSyM2IpnVhD2hznn/eeMaTU7Y52UBkpZVLloQnUuK4qijBeF
/iWsAzbmLTc46/JZDFSKyN9F5CUR+UKB6zR6jIG1a+Gaa8jMnsWbJx5GeVysF+cwHVoAnlj/BE9v
eJqz3392thlgLIgkIgR8AXar2m1ahHdSFEUZChPBucUHvBc4GCgC/iEizxlj/pO/k4icCpwKMG/e
vJ1eyV60tdms6m+9xYYrv0koGMbjL4IZwxetZDrJiqdXsKB8Ace/6/gxq2JPsgdBWFq9dNKPI1IU
RRlLCm3xbQLyE7vVO+vyaQAeNcZ0G2NagCeBvfsWZIy5wxiz3BizvKZmHLOCp1Lw3HNw111ED9yX
pgP3IZQ0UF8/oiDU979+P+va1nHRgReNWfSDeCpOKp1iafXSSRdRQVEUpdAUWvheAHYTkV1EJAB8
Fniwzz6/Bw4UEZ+IhIF9gZUFrtfI2bQJrrsOk06z8qvHU5Hw2Fic4eFnS2iPtfPD53/IAXMP4CML
PjIm1XNDke1es7uGIlMURRmAgraBGWNSInI28Ch2OMNPjDFviMjpzvbbjTErReRPwKtABjvk4fVC
1mvEdHfbrOqPPcbmUz9HoG4ekkiP2KHl5udvpivRxTc/8M0x8bZ0Q5HtOXNPigPFoy5PURRlKlLw
zh9jzCPAI33W3d5n+RrgmkLXZVQYAytXwvXXk5g/l8bjj6CsJw4LFoB/+GGM1rau5Rev/YJj9ziW
JdVLRl29dCZNR6yDJVVLKAuWjbo8RVGUqYr6tw+V5ma47TZoaOCt879IqYRsAOoRZlW/6pmrKPIX
ce6+5466ahmToS3axsLKhcwIj51XqKIoylRkyMInIotF5G8i8rqzvJeIXFq4qk0gEgl48knMz37G
to8diNn3fUgyaYcvjKCJ8qn1T/HE+ic4c/mZo46Z6YYim18xv1euMkVRFGVghmPx3Ql8C0gCGGNe
xTqrTH3Wr8dccw2ZgJ+Gr55EoCdh+/WKhu88ksqkWPHMCuaVz+Pze39+1FVrj7Uzp2QOtaW1oy5L
URRlOjAc4QsbY57vsy41lpWZkHR2wv33I88/z4ZT/5uiGbNsYtkRDql44I0HWNO6hos+MPrhC22x
NqrCVRqKTFEUZRgMR/haRGQRNgcxIvIZYOwSxU1E0ml49VXMTTfRvWQh0WM/DT09dsyeb/h+QR2x
Dm76503sW7cvB+9y8Kiq1hHroDxQzi4Vu6joKYqiDIPh/HqfBdwBLBWRTcDbwAkFqdVEoakJ88Mf
wrZtbLzq6/iSKSgrs9MIuPWFW+mIdXDxBy8elVh1xbso8hexa9WuGopMURRlmAxJ+ETEAyw3xhwi
IsWAxxjTVdiqjTPRKPzlL/C//0vTMYfiede7oCsyYoeWt9ve5uev/Zxj9ziWpdVLR1yt7kQ3Po+P
xVWLNRSZoijKCBhSU6cxJgN8w5nvnvKiZwysW0fmmqtJlZfScdbJEOmG2bMhGBxRkVc9cxVBb5Bz
9xv58IVYKkbGZFhSvURDkSmKooyQ4fTx/VVELhSRuSIyw50KVrPxpK2NzE/vwfPGm2z66klIUdgO
Uq+uHlFxz2x4hsffeZzTl59OdXhkZSTSCWKpGLvX7E7IFxpRGYqiKMrw+viOcz7PyltngIVjV50J
QCoFL70Et99Ox3v2JPGpw6CjA3bd1XpzDre4TIoVT6+gvqyeL+79xRFVKZlOEolH2HPmnoT9w48J
qiiKouQYsvAZY3YpZEUmDJs2kbz+OrzRKNsuOsd6cVZU2CgtI+B/3/xf/tP6H2467CaCvuE3k6Yz
abriXSypXkJpcGR1UBRFUXIMWfhExA+cARzkrPo78CNjTLIA9RofurtJP/wQ/j89StMX/4vUgnk2
MHVd39y5Q6Mr3sUPnvsB76t9Hx9b9LFhH58xGdpj7SyasYjKosoR1UFRFEXpzXCaOm8D/MCtzvLn
nXWnjHWlxoVMBlavJnPtNSTn1NB5yuchEhlxVnWAW1+8lfZYO9868FvDHr6QDUVWPp+ZxTNHdH5F
URSlP8MRvvcZY/ITxD4mIq+MdYXGjZYW4nfeRvDtDTRd9x2MiPXgHEFWdYD17ev52Ss/49O7f5o9
Z+457OPbY+3UldVRW6ahyBRFUcaS4Xh1pp3ILQCIyEIgPfZVGgcSCVLPPI3vnp/R8aH96PngvnYc
39x68IwsgcXVz16N3+vna/t9bdjHJtNJAt4A9WX1Izq3oiiKMjjDsfi+DjwuIusAAeYDXypIrXY2
GzYQv+4qQsC2C8+0/XrV1VBcMqLi/tHwD/667q+ct995I2qmjCQiLKpchEc0a5SiKMpYMxyvzr+J
yG6AmzV1tTEmXphq7UQ6O+n+9S8ofuZ5ms/+MqmaKuvJOcKs6ulMmiufupK60jpO2uekYR+fTCfx
e/zqzKIoilIghpOP7yygyBjzqpOSKCwiZxauajuBdJrkay/ju+lmYgvn0XbCp0ft0PJ/K/+P1dtW
c+EBF45ooHl3opv68nqNwakoilIghtOW9hVjTLu7YIxpA74y9lXaiTQ1EbnlBoJbmmn+5ldtNoZw
eMQOLZFEhB889wPeM+c9fGLXTwz7+FQmhdfjpapodMlpFUVRlMEZjvB5Jc8nX0S8wOQNGJlK0f63
Ryj/1UN0HH4o0X32hFjMphwaYeaE21+8nW3RbVx84MiyL3QluqgvU2tPURSlkAxH+P4EPCAiB4vI
wfHUf1cAAB9OSURBVMAvnXWTj/vuwyxcSPkXvoJkMsT2XGKbOGtqrMU3AjZ2bOSel+/hmKXH8K5Z
7xr28elMGi9eqsJq7SmKohSS4Xh1XgScio3eAvAX4K4xr1Ghue8+OPVUpKfHLhtDzY13kvF56Dr7
1BEXe82z1+Dz+Dhvv/NGdHxXoou5ZXM11ZCiKEqBGbLFZ4zJGGNuN8Z8BiuA/zDGTL5xfJdcYr02
8/DE4lTf/SubgWEEPL/peR5d+yinvvdUZpUM3xs0nUkjCDXFNSM6v6IoijJ0huPV+XcRKXNSEb0E
3CkiNxSuagViw4YBV/s2N42ouHQmzZVPX8mckjl8+d1fHlEZXfEu6krr1NpTFEXZCQynj6/cGNMJ
fBq41xizL3BwYapVQObNG3B1qm7OiIr77arf8mbzmyMevpAxGRDU2lMURdlJDEf4fCIyB/hv4A8F
qk/hufzyfg4smaIQLZeeP+yiIokINzx3A/vM2odP7fapEVWnK95FbWktfu/ImlkVRVGU4TEc4fsu
8CiwxhjzghOr863CVKuAnHAC3HEHZt5cjAjJ+jk03fB9uj5zxLCLuuOlO2jpaeHiD45s+ELGZDAY
zb6gKIqyExlOyLJfA7/OW14H/Je7LCLfMsZcObbVKxAnnEDqs//NvxtfoiI8ssHqDZ0N3P3y3Ry5
5Ej2nr33jg8YgEg8wpySOQS8k3c4pKIoymRjLKMgHzuGZe0cRph5AeDaZ6/FIx4u2P+CER1vjCFj
MmrtKYqi7GTGUvhGFu5kEvJi44v8cc0f+cp7vsLsktkjKqMz3smsklkEfcExrp2iKIqyPcZS+MwY
ljVhyZgMVzx1BbNLZnPyu08eURmutTeSMX+KoijK6FCLb5j8ftXveaP5Dc7f/3yK/EUjKiOSiDCz
eOaIhj8oiqIoo2Mshe/XO95lctOd6Oa6f1zHXrP24ojFw/cCBWvtpTIp5pSObNygoiiKMjqGJHwi
8nEROVlEFvRZnw1VYoy5YmyrNvG481930tzTzMUHXjzi7OiRRITqcLVae4qiKOPEDn+9ReQK4BLg
XcDfROScvM1nF6piE43GrkZ+8u+fcPhuh/PuOe8eURnGGJKZJLWltWNcO0VRFGWoDMVsOQL4qDHm
a8B7gU/kxeicFv16ANc9ex0AFxwwsuELAN3JbqrCVSPuG1QURVFGz1CEz2eMSQE4GdiPAMpE5NdM
5kS0w+Bfm//FH976Aye/5+RRWWuJVIK60roxrJmiKIoyXIYifGtF5CMiMhfAGJM2xpwMrAZ2L2jt
JgAZk+HKp69kZvFMTnn3KSMuJ5KIMKNoBmH/yBLdKoqiKGPDUITvWOCfwCP5K40xlwJzC1GpicRD
/3mIV5te5YL9L6A4UDzichLpBHVlau0piqKMNzsUPmNM1BjTA/xLRN7XZ9umgtVsAtCT7OG6Z69j
2cxlHLnkyBGX053opiJUMSrhVBRFUcaG4WQ+3Rc4QUTWA91YxxZjjNmrIDWbAPz4Xz+mqbuJ6z9+
/YiHLwDEU3F2q9ptDGumKIqijJThCN/HR3ICETkMuBHwAncZY1YMst/7gH8AnzXG/O9IzjWWbO7a
zF3/votP7PoJltcuH3E5PckeyoJllARKxrB2iqIoykgZTlqi9cMtXES8wC3AoUAD8IKIPGiMeXOA
/a4C/jzccxSK6/5xHRmT4cIDLhxVObFUjEU1i8aoVoqiKMpoGcuQZQPxfmzi2nXGmARwP3DUAPud
A/wfsLXA9RkSr2x5hYf+8xBf3ufL1JfVj7icaDJKaaCU0mDpGNZOURRFGQ2FFr46YGPecoOzLouI
1AHHALcVuC5DwhjDFU9dQU24hq+89yujKiuajDK3fMo7viqKokwqCi18Q+EHwEXGmMz2dhKRU0Xk
RRF5sbm5uWCVefith3m56WXO2++8UfXLxVIxigPFlAbU2lMURZlIDMe5ZSRsovdYv3pnXT7LgftF
BKAa+KSIpIwxv8vfyRhzB3AHwPLlywuS+y+ajHLts9eyR80eHLP7MaMqqyfZw+7Vu+Ncl6IoijJB
KLTwvQDsJiK7YAXvs8Dx+TsYY3Zx50XkHuAPfUVvZ/GTl3/C5shmrjn0mlEPXyjyF1EWLBvD2imK
oihjQUGbOp0Yn2cDj8L/b+/eo6Ou7/yPP9+5QO4JiSJySzgtSkJuhBgRSyFSFd1VqqKAuAqoQepl
xZ+7pbbHdt1D5bQeCl6WiwpeNsJ6qaJb8VIqtSwVBRouGlmoBo1cRPwVSAIJk3z2j5mkCSQkTDJM
hnk9zuFk5jvf7+f7nm9O5sXnO9/v50M58KJz7mMzu8PM7gjkvk/Vvqp9PLnxSS7/zuVc0O+C9jc4
ieq6atKT09XbExHphgLd48M59yYnDne2qI11pwa6nrbM+/M8PA0e/mXkv3Sqnbr6OmJ7xJLcM7mL
KhMRka7UHS5uCbot+7bw2vbXmJo/tdNXYVbXVTMgcYB6eyIi3VTYB59zjofXPkxabBp3FHbu7Gtd
fR09I3uSEpvSRdWJiEhXC/vgW7VzFZv2bOr07Qvg6+0lD+jUhTEiIhJYYf0JfdRzlEfWPcKQs4Zw
bea1nWrrWP0xoiOi6RXbq4uqExGRQAjL4CvdWsp3H/suo58ZzVeHv2J0+mgiIyI71WZVXRUDkweq
tyci0s2F3ad06dZSSt4o4YuDXzQte3bzs7yx/Q2/21RvT0QkdIRd8P109U+pOVbTYtlRz1HmfTDP
7zar66rpn9y/071GEREJvLALvuY9veb2HN7jV3ueBg+REZGkxaZ1piwRETlNwi74BiYPbHX5uYnn
+tXe4brD9E9Sb09EJFSEXfDNGTuHuOi4FstiomK4b8R9p9xWfUM9kUSSFqfenohIqAj4kGXdzZSc
KQA8sPoBvjz4Jecmnst9I+7jqvOvOuW2DtcdZkDSAKIiwu4wioiErLD8xJ6SM4Ubsm7gL3v/QkqM
f6Os1DfUYxhnx5/dxdWJiEgghd2pzq5yuPYw/RL7qbcnIhJiFHx+aHANYKi3JyISghR8fjhce5i+
iX2JjowOdikiInKKFHynqME14HD0ju8d7FJERMQPCr5TVFVbxbkJ59IjskewSxERET8o+E6Bc44G
16DenohICFPwnYLDdYc5J+Ecekb1DHYpIiLiJwVfBznnqG+o55yEc4JdioiIdIKCr4Oq6qroHd+b
mKiYYJciIiKdoODrAOccngaP3wNZi4hI96Hg64DqY9WcFXeWensiImcABV87nHPU1dfRN7FvsEsR
EZEuoOBrR/WxatLi0oiNjg12KSIi0gUUfO2o89TRL7FfsMsQEZEuouA7iaq6KlJjU0+YuFZEREKX
gu8k6urr6Jek3p6IyJlEwdeG6rpqUmJSiO8RH+xSRESkCyn42lDrqaV/Uv9glyEiIl1MwdeKmmM1
JPVMIqFHQrBLERGRLqbga8VRz1EGJA8IdhkiIhIACr7jHDl2hMQeiST2TAx2KSIiEgAKvuMcOXZE
vT0RkTOYgq+Zo56jxPeIJ7GHensiImcqBV8zNcdqGJg8EDMLdikiIhIgCj6fWk8tsdGxJPVMCnYp
IiISQAo+n+q6atKT09XbExE5wyn48A5NFhsdS3LP5GCXIiIiAabgw9vbG5A0QL09EZEwEPDgM7Nx
ZrbdzHaa2exWXp9iZlvMbKuZrTOzvEDX1FxdfR09I3uSEptyOncrIiJBEtDgM7NI4AngCiALmGxm
Wcet9jkw2jmXA/w7sCSQNR2vuq6aAckDiDB1fkVEwkGgP+2LgJ3Ouc+cc3XACmB88xWcc+ucc//f
9/QD4LSNDF3fUE90RDS9Ynudrl2KiEiQBTr4+gFfNnte6VvWlluBVQGtqBnDGJg8UL09EZEwEhXs
AhqZWTHe4PteG6+XACUAAwcO7JJ9Jsckq7cnIhJmAt3V+QpoPvBlf9+yFswsF3gKGO+cO9BaQ865
Jc65Qudc4dlnn93pwqIjoxmcNpjIiMhOtyUiIqEj0MH3ETDYzAaZWQ9gEvB68xXMbCDwW+CfnHP/
G+B6WoiK6DYdXhEROU0C+snvnPOY2V3A20AksNQ597GZ3eF7fRHwIJAG/IfvPjqPc64wkHWJiEj4
MudcsGs4ZYWFhW7Dhg3BLkNERLoRM9vYkY6TLmcUEZGwouATEZGwouATEZGwouATEZGwouATEZGw
ouATEZGwouATEZGwouATEZGwouATEZGwouATEZGwouATEZGwouATEZGwouATEZGwouATEZGwouAT
EZGwouATEZGwouATEZGwouATEZGwouATEZGwEhXsAkREAunYsWNUVlZy9OjRYJciXSQmJob+/fsT
HR3t1/YKPhE5o1VWVpKYmEhGRgZmFuxypJOccxw4cIDKykoGDRrkVxs61SkiZ7SjR4+Slpam0DtD
mBlpaWmd6sEr+ETkjKfQO7N09vep4BMRCaADBw6Qn59Pfn4+ffr0oV+/fk3P6+rqOtTGtGnT2L59
+0nXeeKJJygtLe2Kklm5ciX5+fnk5eWRlZXFU0891SXtdhf6jk9EpLnSUvjpT+GLL2DgQJgzB6ZM
8bu5tLQ0ysrKAPjFL35BQkIC999/f4t1nHM454iIaL0vsmzZsnb3c+edd/pdY3O1tbXMnDmTDRs2
0LdvX2pra9m1a1en2mzv/Z1u3aMKEZHuoLQUSkpg1y5wzvuzpMS7vIvt3LmTrKwspkyZwtChQ9mz
Zw8lJSUUFhYydOhQHnrooaZ1v/e971FWVobH4yElJYXZs2eTl5fHRRddxNdffw3Az372M+bPn9+0
/uzZsykqKuL8889n3bp1AFRXV3PdddeRlZXFhAkTKCwsbArlRgcPHsQ5R2pqKgA9e/bkvPPOA2Dv
3r2MHz+e3Nxc8vLyWL9+PQC/+tWvyM7OJjs7m8cee6zN97dq1SouuugiCgoKmDhxItXV1V1+XDtC
PT4RCR/33gvHfdC38MEHUFvbcllNDdx6Kzz5ZOvb5OeDL3BO1aeffspzzz1HYWEhAHPnziU1NRWP
x0NxcTETJkwgKyurxTYHDx5k9OjRzJ07l/vuu4+lS5cye/bsE9p2zvHhhx/y+uuv89BDD/HWW2/x
2GOP0adPH1555RU2b95MQUHBCdv17t2byy+/nPT0dMaOHctVV13FxIkTiYiI4M477+TSSy/lrrvu
wuPxUFNTw/r16yktLeWjjz7C4/FQVFTEmDFjiI2NbfH+vv76a+bOncvq1auJi4tjzpw5LFiwgAce
eMCvY9cZ6vGJiDQ6PvTaW95J3/nOd5pCD2D58uUUFBRQUFBAeXk5n3zyyQnbxMbGcsUVVwAwfPhw
KioqWm372muvPWGdtWvXMmnSJADy8vIYOnRoq9s+88wzvPvuuxQWFjJ37lxKSkoAWLNmDTNmzAAg
KiqKpKQk1q5dy3XXXUdsbCyJiYn88Ic/5E9/+tMJ72/dunV88sknjBw5kvz8fEpLS9usPdDU4xOR
8NFezywjw3t683jp6bBmTZeXEx8f3/R4x44dLFiwgA8//JCUlBRuuummVi/Z79GjR9PjyMhIPB5P
q2337Nmz3XVOJjc3l9zcXG688UYyMzObLnA5lSsqm78/5xzjxo3j+eefP+Vaupp6fCIijebMgbi4
lsvi4rzLA+zQoUMkJiaSlJTEnj17ePvtt7t8HxdffDEvvvgiAFu3bm21R3no0CHef//9pudlZWWk
p6cDUFxczKJFiwCor6/n0KFDjBo1ildffZUjR45QVVXFypUrGTVq1Antjhw5kj/+8Y989tlngPf7
xh07dnT5e+wI9fhERBo1Xr3ZhVd1dlRBQQFZWVkMGTKE9PR0Lr744i7fx913383NN99MVlZW07/k
5OQW6zjnePjhh7n99tuJjY0lISGBpUuXAvD4449z++23s3jxYqKioli8eDFFRUVMnjyZCy64AICZ
M2eSk5PDzp07W7R7zjnn8PTTTzNx4sSm2zh++ctfMnjw4C5/n+0x59xp32lnFRYWug0bNgS7DBEJ
AeXl5WRmZga7jG7B4/Hg8XiIiYlhx44dXHbZZezYsYOoqNDrA7X2ezWzjc65wjY2aRJ671ZERPxS
VVXF2LFj8Xg8OOeaem7hJvzesYhImEpJSWHjxo3BLiPodHGLiIiEFQWfiIiEFQWfiIiEFQWfiIiE
FQWfiEgAFRcXn3Az+vz585k5c+ZJt0tISABg9+7dTJgwodV1xowZQ3u3ds2fP5+ampqm51deeSV/
+9vfOlL6SW3fvp0xY8aQn59PZmZm07BmoUDBJyLSTOnWUjLmZxDxbxFkzM+gdGvnZmaYPHkyK1as
aLFsxYoVTJ48uUPb9+3bl5dfftnv/R8ffG+++SYpKSl+t9fonnvuYdasWZSVlVFeXs7dd9/d6Tbr
6+s73UZHKPhERHxKt5ZS8kYJuw7uwuHYdXAXJW+UdCr8JkyYwO9+97um0UoqKirYvXs3o0aNarqv
rqCggJycHFauXHnC9hUVFWRnZwNw5MgRJk2aRGZmJtdccw1HjhxpWm/mzJlNUxr9/Oc/B+DRRx9l
9+7dFBcXU1xcDEBGRgbffPMNAPPmzWuaTqhxSqOKigoyMzO5/fbbGTp0KJdddlmL/TTas2cP/fv3
b3qek5MDeMPr/vvvJzs7m9zc3KZpilavXs2wYcPIyclh+vTp1PoG/s7IyODHP/4xBQUFvPTSS/z1
r39l3LhxDB8+nFGjRvHpp5/6fezbEvD7+MxsHLAAiASecs7NPe51871+JVADTHXObQp0XSISfu59
617K9rY9LdEHlR9QW99yJoaaYzXcuvJWntzY+rRE+X3ymT+u7cGvU1NTKSoqYtWqVYwfP54VK1Zw
ww03YGbExMTw6quvkpSUxDfffMOIESO4+uqr2xwIeuHChcTFxVFeXs6WLVtaTCs0Z84cUlNTqa+v
Z+zYsWzZsoV77rmHefPm8d5773HWWWe1aGvjxo0sW7aM9evX45zjwgsvZPTo0fTq1YsdO3awfPly
nnzySW644QZeeeUVbrrpphbbz5o1i0suuYSRI0dy2WWXMW3aNFJSUliyZAkVFRWUlZURFRXFt99+
y9GjR5k6dSqrV6/mvPPO4+abb2bhwoXce++9gHey3k2bvB/7Y8eOZdGiRQwePJj169fzox/9iD/8
4Q9tHl9/BLTHZ2aRwBPAFUAWMNnMso5b7QpgsO9fCbAwkDWJiLTl+NBrb3lHNT/d2fw0p3OOBx54
gNzcXH7wgx/w1VdfsW/fvjbbef/995sCqHH2hEYvvvgiBQUFDBs2jI8//rjVAaibW7t2Lddccw3x
8fEkJCRw7bXXNk0nNGjQIPLz84G2pz6aNm0a5eXlXH/99axZs4YRI0ZQW1vL73//e2bMmNE0Ikxq
airbt29n0KBBTRPa3nLLLS0Gwp44cSLgHVlm3bp1XH/99eTn5zNjxgz27Nlz0vfhj0D3+IqAnc65
zwDMbAUwHmj+GxkPPOe8g4Z+YGYpZnauc67r362IhLWT9cwAMuZnsOvgidMSpSens2bqGr/3O378
eGbNmsWmTZuoqalh+PDhAJSWlrJ//342btxIdHQ0GRkZrU5F1J7PP/+cRx55hI8++ohevXoxdepU
v9pp1DilEXinNWrtVCd4v3+cPn0606dPJzs7m23btvm1v8bpixoaGkhJSTlhVviuFujv+PoBXzZ7
XulbdqrrYGYlZrbBzDbs37+/ywsVEZkzdg5x0S2nJYqLjmPO2M5NS5SQkEBxcTHTp09vcVHLwYMH
6d27N9HR0bz33nvsam0uwGa+//3v88ILLwCwbds2tmzZAninEoqPjyc5OZl9+/axatWqpm0SExM5
fPjwCW2NGjWK1157jZqaGqqrq3n11VdbnU6oLW+99RbHjh0DYO/evRw4cIB+/fpx6aWXsnjx4qY5
AL/99lvOP/98KioqmmZseP755xk9evQJbSYlJTFo0CBeeuklwNsj3rx5c4dr6qiQubjFObfEOVfo
nCs8++yzg12OiJyBpuRMYclVS0hPTscw0pPTWXLVEqbkdH5aosmTJ7N58+YWwTdlyhQ2bNhATk4O
zz33HEOGDDlpGzNnzqSqqorMzEwefPDBpp5jXl4ew4YNY8iQIdx4440tpjQqKSlh3LhxTRe3NCoo
KGDq1KkUFRVx4YUXcttttzFs2LAOv5933nmH7Oxs8vLyuPzyy/n1r39Nnz59uO222xg4cCC5ubnk
5eXxwgsvEBMTw7Jly7j++uvJyckhIiKCO+64o9V2S0tLefrpp5tmiG/tgp/OCui0RGZ2EfAL59zl
vuc/AXDOPdxsncXAGufcct/z7cCYk53q1LREItJRmpbozNSZaYkC3eP7CBhsZoPMrAcwCXj9uHVe
B242rxHAQX2/JyIigRLQi1uccx4zuwt4G+/tDEudcx+b2R2+1xcBb+K9lWEn3tsZpgWyJhERCW8B
v4/POfcm3nBrvmxRs8cOuDPQdYiIiEAIXdwiIuKvQF7LIKdfZ3+fCj4ROaPFxMRw4MABhd8ZwjnH
gQMHiImJ8buNgJ/qFBEJpv79+1NZWYnu/z1zxMTEtBgn9FQp+ETkjBYdHc2gQYOCXYZ0IzrVKSIi
YUXBJyIiYUXBJyIiYSWgQ5YFipntB04+mmvoOwv4JthFhCgdO//p2PlPx85/XXXs0p1z7Q7mHJLB
Fw7MbENHxpyTE+nY+U/Hzn86dv473cdOpzpFRCSsKPhERCSsKPi6ryXBLiCE6dj5T8fOfzp2/jut
x07f8YmISFhRj09ERMKKgq+bMbMBZvaemX1iZh+b2T8Hu6ZQYmaRZvYXM/vvYNcSaswsxcxeNrNP
zazczC4Kdk2hwMxm+f5Wt5nZcjPzf/TkMGBmS83sazPb1mxZqpm9a2Y7fD97BbIGBV/34wH+n3Mu
CxgB3GlmWUGuKZT8M1Ae7CJC1ALgLefcECAPHcd2mVk/4B6g0DmXjXfC7UnBrarbewYYd9yy2cBq
59xgYLXvecAo+LoZ59we59wm3+PDeD98+gW3qtBgZv2BfwCeCnYtocbMkoHvA08DOOfqnHN/C25V
ISMKiDWzKCAO2B3kero159z7wLfHLR4PPOt7/Czww0DWoODrxswsAxgGrA9uJSFjPvCvQEOwCwlB
g4D9wDLfqeKnzCw+2EV1d865r4BHgC+APcBB59w7wa0qJJ3jnNvje7wXOCeQO1PwdVNmlgC8Atzr
nDsU7Hq6OzP7R+Br59zGYNcSoqKAAmChc24YUE2ATzedCXzfRY3H+x+HvkC8md0U3KpCm/PeahDQ
2w0UfN2QmUXjDb1S59xvg11PiLgYuNrMKoAVwCVm9p/BLSmkVAKVzrnGswsv4w1CObkfAJ875/Y7
544BvwVGBrmmULTPzM4F8P38OpA7U/B1M2ZmeL9nKXfOzQt2PaHCOfcT51x/51wG3osL/uCc0/+8
O8g5txf40szO9y0aC3wSxJJCxRfACDOL8/3tjkUXBfnjdeAW3+NbgJWB3JmCr/u5GPgnvD2WMt+/
K4NdlISFu4FSM9sC5AO/DHI93Z6vh/wysAnYivczVSO4nISZLQf+DJxvZpVmdiswF7jUzHbg7UXP
DWgNGrlFRETCiXp8IiISVhR8IiISVhR8IiISVhR8IiISVhR8IiISVhR8IidhZq75jfBmFmVm+/2d
/cHMrjazoI2IYmZrzGy7mW3xzcLwuJmldKK9qWbWt9nzCjM7q2uqFQkMBZ/IyVUD2WYW63t+KfCV
v4055153zgX0HqUOmOKcywVygVo6d7PwVLxDdYmEDAWfSPvexDvrA8BkYHnjC2ZWZGZ/9g3svK5x
5BPfHG1LfY9zfHO1xfl6SI/7lj9jZgvN7AMz+8zMxvjmKis3s2ea7aOq2eMJja91dPu2OOfq8A7q
PdDM8nxt3mRmH/oGTlhsZpGNNZjZb3zzzq02s7PNbAJQiPem97Jm/zm428w2mdlWMxvix/EWCSgF
n0j7VgCTfBOM5tJytoxPgVG+gZ0f5O+jnSwAvmtm1wDLgBnOuZpW2u4FXATMwjts02+AoUCOmeV3
oLZObe+cqwc2A0PMLBOYCFzsnMsH6oEpvlXjgQ3OuaHAH4GfO+deBjbg7UHmO+eO+Nb9xjlXACwE
7u/AexA5raKCXYBId+ec2+KbImoy3t5fc8nAs2Y2GO+I8tG+bRrMbCqwBVjsnPufNpp/wznnzGwr
sM85txXAzD4GMoCydsrr7PYA5vs5FhgOfOQddpJY/j5YcAPwX77H/4l3MOa2NL62Ebi2A/sXOa0U
fCId8zreedfGAGnNlv878J5z7hpfOK5p9tpgoIqTfwdW6/vZ0Oxx4/PGv8/m4wrG+LF9m3ynMnPw
DqzcG3jWOfeT9rbj5NPGNNZR35EaRE43neoU6ZilwL819qiaSebvF7tMbVzom9H8Ubyzmqf5vg/z
1z4zyzSzCOCaTrTTgm/6q4eBL51zW4DVwAQz6+17PdXM0n2rRwCN7+FGYK3v8WEgsatqEjkdFHwi
HeCcq3TOPdrKS78CHjazv9Cyd/Mb4Ann3P8CtwJzGwPFD7OB/wbW4Z3lu7MaZ2DYhve7u/EAzrlP
gJ8B7/hefxc417dNNVBkZtuAS4CHfMufARYdd3GLSLem2RlEpF1mVuWcSwh2HSJdQT0+EREJK+rx
iYhIWFGPT0REwoqCT0REwoqCT0REwoqCT0REwoqCT0REwoqCT0REwsr/AWhAWicV9rBGAAAAAElF
TkSuQmCC
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#38382;&#39064; 5 - &#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;<a class="anchor-link" href="#&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#182;</a></h3><ul>
<li>当模型以最大深度 1训练时，模型的预测是出现很大的偏差还是出现了很大的方差？</li>
<li>当模型以最大深度10训练时，情形又如何呢？</li>
<li>图形中的哪些特征能够支持你的结论？</li>
</ul>
<p><strong>提示：</strong> 高偏差表示欠拟合（模型过于简单），而高方差表示过拟合（模型过于复杂，以至于无法泛化）。考虑哪种模型（深度1或10）对应着上述的情况，并权衡偏差与方差。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#22238;&#31572;:">&#38382;&#39064; 5 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-5---&#22238;&#31572;:">&#182;</a></h3><p>最大深度为1，模型预测偏差比较大，R2评分较低</p>
<p>最大深度为10时，方差较高，训练集和验证集曲线相差较大</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#38382;&#39064; 6- &#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;<a class="anchor-link" href="#&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#182;</a></h3><ul>
<li>结合问题 5 中的图，你认为最大深度是多少的模型能够最好地对未见过的数据进行预测？</li>
<li>你得出这个答案的依据是什么？</li>
</ul>
<p><strong>提示</strong>：查看问题5上方的图表，并查看模型在不同 <code>depth</code>下的验证分数。随着深度的增加模型的表现力会变得更好吗？我们在什么情况下获得最佳验证分数而不会使我们的模型过度复杂？请记住，奥卡姆剃刀：“在竞争性假设中，应该选择假设最少的那一个。”</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6---&#22238;&#31572;:">&#38382;&#39064; 6 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-6---&#22238;&#31572;:">&#182;</a></h3><p>深度为4，此时训练和验证曲线趋于收敛并且此时R2评分较大</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20116;&#27493;.-&#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;">&#31532;&#20116;&#27493;. &#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;<a class="anchor-link" href="#&#31532;&#20116;&#27493;.-&#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;">&#182;</a></h2><p>在项目的最后一节中，你将构建一个模型，并使用 <code>fit_model</code> 中的优化模型去预测客户特征集。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#38382;&#39064; 7- &#32593;&#26684;&#25628;&#32034;&#65288;Grid Search&#65289;<a class="anchor-link" href="#&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#182;</a></h3><ul>
<li>什么是网格搜索法？</li>
<li>如何用它来优化模型？</li>
</ul>
<p><strong>提示</strong>：在解释网格搜索算法时，首先要理解我们为什么使用网格搜索算法，以及我们使用它的最终目的是什么。为了使你的回答更具有说服力，你还可以给出一个模型中可以使用此方法进行优化参数的示例。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7---&#22238;&#31572;:">&#38382;&#39064; 7 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-7---&#22238;&#31572;:">&#182;</a></h3><p>网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法。
在决策树算法中需要确定决策树的最大深度，例如对于深度1，使用K折交叉验证得到验证分数，同理对2，3，4···10深度得到分数，分数最大的就是最优分数。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#38382;&#39064; 8 - &#20132;&#21449;&#39564;&#35777;<a class="anchor-link" href="#&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#182;</a></h3><ul>
<li>什么是K折交叉验证法（k-fold cross-validation）？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a> 是如何结合交叉验证来完成对最佳参数组合的选择的？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a> 中的<code>'cv_results_'</code>属性能告诉我们什么？</li>
<li>网格搜索为什么要使用K折交叉验证？K折交叉验证能够避免什么问题？</li>
</ul>
<p><strong>提示</strong>：在解释k-fold交叉验证时，一定要理解'k'是什么，和数据集是如何分成不同的部分来进行训练和测试的，以及基于'k'值运行的次数。
在考虑k-fold交叉验证如何帮助网格搜索时，你可以使用特定的数据子集来进行训练与测试有什么缺点，以及K折交叉验证是如何帮助缓解这个问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#38382;&#39064; 8 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#182;</a></h3><p>K次交叉验证，将训练集分割成K个子样本，一个单独的子样本被保留作为验证模型的数据，其他K-1个样本用来训练。交叉验证重复K次，每个子样本验证一次，平均K次的结果或者使用其它结合方式，最终得到一个单一估测。</p>
<p>使用交叉验证得到不同参数组合下的分数，分数最高者组合为最优参数</p>
<p>以字典的形式存放不同超参数的组合方式及其计算结果</p>
<p>交叉验证可以评估模型的预测性，能在一定程度上减小过拟合。还可以从有限的数据中获取尽可能多的有效信息。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-4&#65306;&#25311;&#21512;&#27169;&#22411;">&#32534;&#31243;&#32451;&#20064; 4&#65306;&#25311;&#21512;&#27169;&#22411;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-4&#65306;&#25311;&#21512;&#27169;&#22411;">&#182;</a></h3><p>在这个练习中，你将需要将所学到的内容整合，使用<strong>决策树算法</strong>训练一个模型。为了得出的是一个最优模型，你需要使用网格搜索法训练模型，以找到最佳的 <code>'max_depth'</code> 参数。你可以把<code>'max_depth'</code> 参数理解为决策树算法在做出预测前，允许其对数据提出问题的数量。决策树是<strong>监督学习算法</strong>中的一种。</p>
<p>另外，你会发现在实现的过程中是使用<code>ShuffleSplit()</code>作为交叉验证的另一种形式（参见'cv_sets'变量）。虽然它不是你在问题8中描述的K-fold交叉验证方法，但它同样非常有用！下面的<code>ShuffleSplit()</code>实现将创建10个('n_splits')混洗集合，并且对于每个混洗集，数据的20％（'test_size'）将被用作验证集合。当您在实现代码的时候，请思考一下它与 <code>K-fold cross-validation</code> 的不同与相似之处。</p>
<p>请注意，<code>ShuffleSplit</code> 在 <code>Scikit-Learn</code> 版本0.17和0.18中有不同的参数。对于下面代码单元格中的 <code>fit_model</code> 函数，您需要实现以下内容：</p>
<ol>
<li><strong>定义 <code>'regressor'</code> 变量</strong>: 使用  <code>sklearn.tree</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html"><code>DecisionTreeRegressor</code></a> 创建一个决策树的回归函数;</li>
<li><strong>定义 <code>'params'</code> 变量</strong>: 为 <code>'max_depth'</code> 参数创造一个字典，它的值是从1至10的数组;</li>
<li><strong>定义 <code>'scoring_fnc'</code> 变量</strong>: 使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html"><code>make_scorer</code></a>  创建一个评分函数。将 <code>‘performance_metric’</code> 作为参数传至这个函数中；</li>
<li><strong>定义 <code>'grid'</code> 变量</strong>: 使用 <code>sklearn.model_selection</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html"><code>GridSearchCV</code></a> 创建一个网格搜索对象；将变量<code>'regressor'</code>, <code>'params'</code>, <code>'scoring_fnc'</code>和 <code>'cv_sets'</code> 作为参数传至这个对象构造函数中；</li>
</ol>
<p>如果你对 Python 函数的默认参数定义和传递不熟悉，可以参考这个MIT课程的<a href="http://cn-static.udacity.com/mlnd/videos/MIT600XXT114-V004200_DTH.mp4">视频</a>。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;make_scorer&#39;, &#39;DecisionTreeRegressor&#39;, and &#39;GridSearchCV&#39;</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">make_scorer</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">GridSearchCV</span>
<span class="kn">from</span> <span class="nn">sklearn.tree</span> <span class="k">import</span> <span class="n">DecisionTreeRegressor</span>

<span class="k">def</span> <span class="nf">fit_model</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; Performs grid search over the &#39;max_depth&#39; parameter for a </span>
<span class="sd">        decision tree regressor trained on the input data [X, y]. &quot;&quot;&quot;</span>
    
    <span class="c1"># Create cross-validation sets from the training data</span>
    <span class="c1"># sklearn version 0.18: ShuffleSplit(n_splits=10, test_size=0.1, train_size=None, random_state=None)</span>
    <span class="c1"># sklearn versiin 0.17: ShuffleSplit(n, n_iter=10, test_size=0.1, train_size=None, random_state=None)</span>
    <span class="n">cv_sets</span> <span class="o">=</span> <span class="n">ShuffleSplit</span><span class="p">(</span><span class="n">n_splits</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.20</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
    
    <span class="c1"># TODO: Create a decision tree regressor object</span>
    <span class="n">regressor</span> <span class="o">=</span> <span class="n">DecisionTreeRegressor</span><span class="p">(</span><span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>

    <span class="c1"># TODO: Create a dictionary for the parameter &#39;max_depth&#39; with a range from 1 to 10</span>
    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;max_depth&#39;</span><span class="p">:[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">9</span><span class="p">,</span><span class="mi">10</span><span class="p">]}</span>

    <span class="c1"># TODO: Transform &#39;performance_metric&#39; into a scoring function using &#39;make_scorer&#39; </span>
    <span class="n">scoring_fnc</span> <span class="o">=</span> <span class="n">make_scorer</span><span class="p">(</span><span class="n">performance_metric</span><span class="p">)</span>

    <span class="c1"># TODO: Create the grid search cv object --&gt; GridSearchCV()</span>
    <span class="c1"># Make sure to include the right parameters in the object:</span>
    <span class="c1"># (estimator, param_grid, scoring, cv) which have values &#39;regressor&#39;, &#39;params&#39;, &#39;scoring_fnc&#39;, and &#39;cv_sets&#39; respectively.</span>
    <span class="n">grid</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">regressor</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span class="n">scoring_fnc</span><span class="p">,</span><span class="n">cv</span><span class="o">=</span><span class="n">cv_sets</span><span class="p">)</span>

    <span class="c1"># Fit the grid search object to the data to compute the optimal model</span>
    <span class="n">grid</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

    <span class="c1"># Return the optimal model after fitting the data</span>
    <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">best_estimator_</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#31532;&#20845;&#27493;. &#20570;&#20986;&#39044;&#27979;<a class="anchor-link" href="#&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#182;</a></h2><p>当我们用数据训练出一个模型，它现在就可用于对新的数据进行预测。在决策树回归函数中，模型已经学会对新输入的数据<em>提问</em>，并返回对<strong>目标变量</strong>的预测值。你可以用这个预测来获取数据未知目标变量的信息，这些数据必须是不包含在训练数据之内的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#38382;&#39064; 9 - &#26368;&#20248;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#182;</a></h3><p><em>最优模型的最大深度（maximum depth）是多少？此答案与你在<strong>问题 6</strong>所做的猜测是否相同？</em></p>
<p>运行下方区域内的代码，将决策树回归函数代入训练数据的集合，以得到最优化的模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Fit the training data to the model using grid search</span>
<span class="n">reg</span> <span class="o">=</span> <span class="n">fit_model</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># Produce the value for &#39;max_depth&#39;</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Parameter &#39;max_depth&#39; is </span><span class="si">{}</span><span class="s2"> for the optimal model.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">get_params</span><span class="p">()[</span><span class="s1">&#39;max_depth&#39;</span><span class="p">]))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Parameter &#39;max_depth&#39; is 4 for the optimal model.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#38382;&#39064; 9 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#182;</a></h3><p>最大深度为4，与问题6猜测相同</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#38382;&#39064; 10 - &#39044;&#27979;&#38144;&#21806;&#20215;&#26684;<a class="anchor-link" href="#&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#182;</a></h3><p>想像你是一个在波士顿地区的房屋经纪人，并期待使用此模型以帮助你的客户评估他们想出售的房屋。你已经从你的三个客户收集到以下的资讯:</p>
<table>
<thead><tr>
<th style="text-align:center">特征</th>
<th style="text-align:center">客戶 1</th>
<th style="text-align:center">客戶 2</th>
<th style="text-align:center">客戶 3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">房屋内房间总数</td>
<td style="text-align:center">5 间房间</td>
<td style="text-align:center">4 间房间</td>
<td style="text-align:center">8 间房间</td>
</tr>
<tr>
<td style="text-align:center">社区贫困指数（％被认为是贫困阶层）</td>
<td style="text-align:center">17%</td>
<td style="text-align:center">32%</td>
<td style="text-align:center">3%</td>
</tr>
<tr>
<td style="text-align:center">邻近学校的学生-老师比例</td>
<td style="text-align:center">15：1</td>
<td style="text-align:center">22：1</td>
<td style="text-align:center">12：1</td>
</tr>
</tbody>
</table>
<ul>
<li>你会建议每位客户的房屋销售的价格为多少？</li>
<li>从房屋特征的数值判断，这样的价格合理吗？为什么？</li>
</ul>
<p><strong>提示：</strong>用你在<strong>分析数据</strong>部分计算出来的统计信息来帮助你证明你的答案。</p>
<p>运行下列的代码区域，使用你优化的模型来为每位客户的房屋价值做出预测。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Produce a matrix for client data</span>
<span class="n">client_data</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">15</span><span class="p">],</span> <span class="c1"># Client 1</span>
               <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">22</span><span class="p">],</span> <span class="c1"># Client 2</span>
               <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">12</span><span class="p">]]</span>  <span class="c1"># Client 3</span>

<span class="c1"># Show predictions</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">price</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">client_data</span><span class="p">)):</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted selling price for Client </span><span class="si">{}</span><span class="s2">&#39;s home: $</span><span class="si">{:,.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">price</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Predicted selling price for Client 1&#39;s home: $306,337.50
Predicted selling price for Client 2&#39;s home: $224,342.55
Predicted selling price for Client 3&#39;s home: $930,490.91
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#38382;&#39064; 10 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#182;</a></h3><p>Predicted selling price for Client 1's home: $306,337.50</p>
<p>Predicted selling price for Client 2's home: $224,342.55</p>
<p>Predicted selling price for Client 3's home: $930,490.91</p>
<p>根据分析数据部分的数据</p>
<p>Statistics for Boston housing dataset:</p>
<p>Minimum price: $105000.00</p>
<p>Maximum price: $1024800.00</p>
<p>Mean price: $454342.94</p>
<p>数据合理</p>
<p>预测数据最大与最小数据分别为224,342.55和930,490.91，平均值为487057，与原始数据分析的特征较吻合。</p>
<p>通常来说房间数越少，价格越低，社区越贫困，代表地区发展水平不好，价格也便宜，社区老师越少，教育水平低，房价也低，综合上述原因，可见预测结果较准确</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-5">&#32534;&#31243;&#32451;&#20064; 5<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-5">&#182;</a></h3><p>你刚刚预测了三个客户的房子的售价。在这个练习中，你将用你的最优模型在整个测试数据上进行预测, 并计算相对于目标变量的决定系数 $R^2$ 的值。</p>
<p><strong>提示：</strong></p>
<ul>
<li>你可能需要用到 <code>X_test</code>, <code>y_test</code>, <code>reg</code>, <code>performance_metric</code>。</li>
<li>参考问题10的代码进行预测。</li>
<li>参考问题2的代码来计算 $R^2$ 的值。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO Calculate the r2 score between &#39;y_true&#39; and &#39;y_predict&#39;</span>

<span class="n">r2</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span><span class="n">reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">))</span>

<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Optimal model has R^2 score </span><span class="si">{:,.2f}</span><span class="s2"> on test data&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">r2</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Optimal model has R^2 score 0.71 on test data
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#38382;&#39064;11 - &#20998;&#26512;&#20915;&#23450;&#31995;&#25968;<a class="anchor-link" href="#&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#182;</a></h3><p>你刚刚计算了最优模型在测试集上的决定系数，你会如何评价这个结果？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#22238;&#31572;">&#38382;&#39064;11 - &#22238;&#31572;<a class="anchor-link" href="#&#38382;&#39064;11---&#22238;&#31572;">&#182;</a></h3><p>决定系数仅为0.71，与问题2的预测相比，模型表现并不太好</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;&#20581;&#22766;&#24615;">&#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>一个最优的模型不一定是一个健壮模型。有的时候模型会过于复杂或者过于简单，以致于难以泛化新增添的数据；有的时候模型采用的学习算法并不适用于特定的数据结构；有的时候样本本身可能有太多噪点或样本过少，使得模型无法准确地预测目标变量。这些情况下我们会说模型是欠拟合的。</p>
<h3 id="&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#38382;&#39064; 12 - &#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>模型是否足够健壮来保证预测的一致性？</p>
<p><strong>提示</strong>: 执行下方区域中的代码，采用不同的训练和测试集执行 <code>fit_model</code> 函数10次。注意观察对一个特定的客户来说，预测是如何随训练数据的变化而变化的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">vs</span><span class="o">.</span><span class="n">PredictTrials</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">,</span> <span class="n">fit_model</span><span class="p">,</span> <span class="n">client_data</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Trial 1: $391,183.33
Trial 2: $411,417.39
Trial 3: $415,800.00
Trial 4: $420,622.22
Trial 5: $413,334.78
Trial 6: $411,931.58
Trial 7: $390,250.00
Trial 8: $407,232.00
Trial 9: $402,531.82
Trial 10: $413,700.00

Range in prices: $30,372.22
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#38382;&#39064; 12 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#182;</a></h3><p>预测的最大与最小差为$30,372.22，对于预测波动近10%，预测一致性不理想</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#38382;&#39064; 13 - &#23454;&#29992;&#24615;&#25506;&#35752;<a class="anchor-link" href="#&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#182;</a></h3><p><em>简单地讨论一下你建构的模型能否在现实世界中使用？</em></p>
<p>提示：回答以下几个问题，并给出相应结论的理由：</p>
<ul>
<li><em>1978年所采集的数据，在已考虑通货膨胀的前提下，在今天是否仍然适用？</em></li>
<li><em>数据中呈现的特征是否足够描述一个房屋？</em></li>
<li><em>在波士顿这样的大都市采集的数据，能否应用在其它乡镇地区？</em></li>
<li><em>你觉得仅仅凭房屋所在社区的环境来判断房屋价值合理吗？</em></li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#38382;&#39064; 13 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#182;</a></h3><p>不能，经过40年的发展，社区的发展也不相同，房价也可能发生翻天覆地的变化</p>
<p>三个特征还不够，还应该从社区安全，交通便利性，医疗水平等方面考虑</p>
<p>波士顿采集的数据在其他乡镇地区并不适用，乡镇地区的数据特征显然与大都市不同，房价会更低。</p>
<p>房价也要看发展潜力，政府的规划有可能导致某一地区房价保障</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;">&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;<a class="anchor-link" href="#&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>当你完成了以上所有的代码和问题，你需要将 iPython Notebook 导出 HTML，导出方法：在左上角的菜单中选择 <strong>File -&gt; Download as -&gt; HTML (.html)</strong>。当你提交项目时，需要包含<strong>可运行的 .ipynb 文件</strong>和<strong>导出的 HTML 文件</strong>。</p>

</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
